優秀開源RPC框架安裝與使用之brpc

代碼開發自然要多讀其他人開發的一些開源,閱讀源代碼最好的方式是先使用它,有個感性的認識。對著分佈式技術的廣泛應用,網絡相關的技術是必須要掌握的。今天我們就介紹一下百度的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


分享到:


相關文章: