百度RPC框架 BRPC 初体验
Jacktanger 发表于1周前
百度RPC框架 BRPC 初体验
  • 发表于 1周前
  • 阅读 1750
  • 收藏 36
  • 点赞 1
  • 评论 17

腾讯云实验室 1小时搭建人工智能应用,让技术更容易入门 免费体验 >>>   

摘要: 9月14日,百度正式在GitHub上基于Apache 2.0协议开源了其RPC框架brpc。brpc是一个基于protobuf接口的RPC框架,在百度内部称为“baidu-rpc”,它囊括了百度内部所有RPC协议,并支持多种第三方协议,从目前的性能测试数据来看,brpc的性能领跑于其他同类RPC产品。

一、BRPC为何物

    9月14日,百度正式在GitHub上基于Apache 2.0协议开源了其RPC框架brpc。brpc是一个基于protobuf接口的RPC框架,在百度内部称为“baidu-rpc”,它囊括了百度内部所有RPC协议,并支持多种第三方协议,从目前的性能测试数据来看,brpc的性能领跑于其他同类RPC产品。

    brpc开发于2014年,主要使用的语言是C++和Java,是百度内部使用最为广泛的RPC框架,它经受了高并发高负载的生产环境验证,并支撑了百度内部大约75万个同时在线的实例。

二、BRPC开源项目地址

    码云 或者 GitHub,国内用户推荐使用码云,下载速度秒杀github

三、下载、编译和安装(CentOS为例)

    (1)安装的前提条件:

        a.保证linux上安装好了 git、g++、make和openssl-devel等常用的开发tools

        b.brcp依赖下面三种包,分别是:

            gflags --- 介绍和安装请参考 CentOS下安装gflags

            protobuf --- 介绍和安装请参考 CentOS下安装protobuf

            leveldb --- 介绍和安装请参考 CentOS下安装leveldb

    (2)准备工作做好后,开始检出项目:码云检出,速度很快

git clone https://gitee.com/mirrors/BRPC.git

    (3)进入 BRPC 目录,开始编译:

cd BRPC
sh config_brpc.sh --headers=/usr/local/include --libs=/usr/local/lib
make

四、运行example,查看效果

    (1)进入 BRPC 的子目录 example/echo_c++,编译给出的example代码:

cd example/echo_c++
make

    (2)生成目标文件后,先执行 Server(后台执行),在启动 Client:

./echo_server &
./echo_client

    (3)运行效果图:

        a.启动 Server

        b.启动 Client

        c.访问控制台:http://主机IP:8000/,监控RPC

   

    初体验完成~

标签: BRPC RPC
共有 人打赏支持
粉丝 8
博文 46
码字总数 26005
评论 (17)
dwingo
百度的核心产品竟然还依赖Google的东西,没有能力完全原创么。
hzh62

引用来自“dwingo”的评论

百度的核心产品竟然还依赖Google的东西,没有能力完全原创么。
protobuf 这个依赖比较正常,而且看到也是可以脱离的。protobuf 不是整个系统的关键,协议自定义一套估计也不难。
tubexu
干什么用的brpc
Jacktanger

引用来自“dwingo”的评论

百度的核心产品竟然还依赖Google的东西,没有能力完全原创么。
我个人觉得,这很符合开源社区。BAT不可能对每个方方面面都自创一套自己的东西吧,毕竟开源不是人家的首要任务。
K不是你的帝

引用来自“dwingo”的评论

百度的核心产品竟然还依赖Google的东西,没有能力完全原创么。
优秀的轮子何必再造。
沈浩z
有没有java版本的简单demo
MrXionGe
为什么没有中文文档
两江总督噶礼
g++ 需要 4.8.0+ 建议大家直接安装centos 7 省得还要自己去编译
liuchangng
只有c++的实现开源了,java的木有,好像口号不符啊:smiley:
Jacktanger

引用来自“liuchangng”的评论

只有c++的实现开源了,java的木有,好像口号不符啊:smiley:
https://github.com/brpc/brpc/tree/master/java 最新好像还是empty:sob:
Jacktanger

引用来自“两江总督噶礼”的评论

g++ 需要 4.8.0+ 建议大家直接安装centos 7 省得还要自己去编译
谢谢补充,如果是CentOS 7之前的版本,可以参考:https://my.oschina.net/jacktanger/blog/1541584 升级gcc
Jacktanger

引用来自“MrXionGe”的评论

为什么没有中文文档
https://github.com/brpc/brpc 因为人家放在github上:joy:
神州浪子
给一个不用gRPC的理由?
gfcom
http协议,这个东西上传下载文件的速度是socket直连的几分之一。好像是5左右。
gfcom
http协议,这个东西上传下载文件的速度是socket直连的几分之一。好像是5左右。我说的是在单线程,并且是同样的网络环境下,也就是说,传输速度是一样的,但是浪费了大量带宽,百度不是很重视资源的使用吗?节省带宽等资源奖励一百万美元给一个运维开发团队。我觉得用http做这个就是糊弄事,拿一个开源库,底层什么都不用做,就是做个上层逻辑,要是哪天底层出bug了,查都费劲,别说解决了。
不懂吗
不支持苹果和安卓的客户端吧
_小旋风
连中文文档都没有 没dubbo好
×
Jacktanger
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: