首页 > *nix应用编程, *nix技术 > 远程过程调用brpc试用

远程过程调用brpc试用

2020年3月14日 发表评论 阅读评论 200 次浏览

Rpc用得越来越多,因此想看一下当前开源界有哪些优秀的Rpc项目,从这里摘到了如下一段,像是对目前流行的Rpc项目做了一下大致介绍:

grpc(google)https://github.com/grpc/grpc
thrift(facebook):独特的序列化格式和IDL,支持很多编程语言。thrift的代码看似分层很清楚,client、server选择很多,但没有一个足够通用,每个server实现都只能解决很小一块场景,每个client都线程不安全。实际使用中非常麻烦。thrift的代码质量也比较差,接口和生成的代码都比较乱。https://github.com/apache/thrift
dubbo(alibaba)https://github.com/alibaba/dubbo
sofa-pbrpc(baidu):百度PS基于boost::asio和protobuf实现的RPC框架,这个库代码工整,接口清晰,支持同步和异步。sofa-pbrpc存在产品线自研框架的鲜明特点:不支持内部其他协议,对名字服务、负载均衡、服务认证、连接方式等多样化的需求的抽象不够一般化。https://github.com/baidu/sofa-pbrpc
baidu-rpc(baidu)提供稳定的RPC框架;适用各类业务场景,提供优秀的延时,吞吐,并发度,具备优秀的多核扩展性;接口易懂,用户体验佳。有完备的调试和运维接口(HTTP)。https://github.com/brpc/brpc。

从上面评价来看,baidu-rpc算不错,因此下面尝试试用一下这个开源。

一,测试环境
$ cat /etc/issue
Ubuntu 18.04.3 LTS \n \l
$ uname -a
Linux lenky-virtual-machine 5.0.0-27-generic #28~18.04.1-Ubuntu SMP Thu Aug 22 03:00:32 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

二,准备依赖环境
$ sudo apt-get install -y git g++ make libssl-dev libgflags-dev libprotobuf-dev libprotoc-dev protobuf-compiler libleveldb-dev
$ sudo apt-get install -y libsnappy-dev
$ sudo apt-get install -y libgoogle-perftools-dev
$ sudo apt-get install -y cmake libgtest-dev && cd /usr/src/gtest && sudo cmake . && sudo make && sudo mv libgtest* /usr/lib/ && cd –

三,编译
$ tar xf incubator-brpc-0.9.7-rc03.tar.gz
$ cd incubator-brpc-0.9.7-rc03/
$ sh config_brpc.sh –headers=/usr/include –libs=/usr/lib
$ make

四,编译运行测试程序
$ cd example/
$ cd echo_c++
$ make
$ ./echo_server &
$ ./echo_client

可以看到定时的hello world输出。

五,源码
翻看了一下源码,C/C++语言开发,代码简单明了,值得找时间仔细翻阅下。

六,其它
在使用brpc的多节点场景,很有可能也会需要实现高可用,所以不妨试试braft,也是百度的开源项目,刚好开源和brpc搭配,挺好。

参考:
1,https://github.com/apache/incubator-brpc/blob/master/docs/cn/getting_started.md
2,https://www.zhihu.com/question/65370268?sort=created
3,https://www.sohu.com/a/225296499_355140

转载请保留地址:http://www.lenky.info/archives/2020/03/2718http://lenky.info/?p=2718


备注:如无特殊说明,文章内容均出自Lenky个人的真实理解而并非存心妄自揣测来故意愚人耳目。由于个人水平有限,虽力求内容正确无误,但仍然难免出错,请勿见怪,如果可以则请留言告之,并欢迎来讨论。另外值得说明的是,Lenky的部分文章以及部分内容参考借鉴了网络上各位网友的热心分享,特别是一些带有完全参考的文章,其后附带的链接内容也许更直接、更丰富,而我只是做了一下归纳&转述,在此也一并表示感谢。关于本站的所有技术文章,欢迎转载,但请遵从CC创作共享协议,而一些私人性质较强的心情随笔,建议不要转载。

法律:根据最新颁布的《信息网络传播权保护条例》,如果您认为本文章的任何内容侵犯了您的权利,请以Email或书面等方式告知,本站将及时删除相关内容或链接。

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.