优秀开源RPC框架安装与使用之brpc

Charlesbases 2019-11-16

代码开发自然要多读其他人开发的一些开源,阅读源代码最好的方式是先使用它,有个感性的认识。对着分布式技术的广泛应用,网络相关的技术是必须要掌握的。今天我们就介绍一下百度的brpc,这是一个比较不错的rpc框架。

rpc是很多业务开发的基础,因此学习rpc的代码对大家后续的开发会有很大的帮助。由于版本的问题可能会导致编译失败,因此这里提供了详细的版本信息。

安装环境

本文基于Ubuntu 18.04编译通过,其它版本暂时没有测试验证。

安装依赖软件包

百度的brpc依赖一些第三方的软件包,在编译brpc之前需要先安装编译这些软件包,下面我们分别介绍一下安装方法。

安装gflags

本文编译安装的是 2.0,用最新版本貌似静态链接库有点问题。

git clone https://github.com/gflags/gflags.git
cd gflags
git checkout v2.0
sh autogen.sh
./configure
make
make install

安装protobuf

本文编译安装的是 3.0 ,之前没看版本依赖,用最新的protobuf结果提示少了gzip_stream.h 头文件。由于在国内无法下载谷歌内的一个文件,因此需要手动修改autogen.sh中的一句代码,可以将其该问如下内容。

https://github.com/shuningzhang/cxy-mst-dzh/blob/master/gmock-1.7.0.zip

整个安装过程如下:

https://github.com/google/protobuf.git
cd protobuf
git checkout v3.0.0
sh autogen.sh
./configure
make 
make install

安装leveldb

最新版的有静态库的问题,本文采用1.10版本。

git clone https://github.com/google/leveldb.git
git checkout v1.10
make
sudo cp libleveldb.so* /usr/local/lib & sudo cp -R include/* /usr/local/include

安装openssl

openssl是一个开源的加密库,接下来进行编译和安装:

wget https://www.openssl.org/source/openssl-1.1.1a.tar.gz
tar zxvf openssl-1.1.1a.tar.gz
cd openssl-1.1.1a
./config
make
sudo make install

将/usr/local/lib加入默认系统链接库

echo "/usr/local/lib" >> /etc/ld.so.conf
/sbin/ldconfig

编译brpc

一切就绪之后就可以编译brpc了,具体步骤如下:

git clone https://github.com/brpc/brpc.git
cd brpc
sh config_brpc.sh --headers=/usr/local/include --libs=/usr/local/lib
make
sh tools/make_all_examples

在编译的时候可能会存在找不到snappy函数的情况,此时需要修改一下config.mk文件,在其中增加对动态库的支持-lsnappy。

运行示例

brpc里面有很多示例程序,我们可以运行一个简单的示例。这个实例在两个程序之间发送消息。

cd example/echo_c++
make
./echo_server &
./echo_client

相关推荐