开始之前
所谓的gRPC
就是Google
公司开发的一个RPC
(Remote Procedure Call
,远程过程调用)库。主要的特征是:
- 多语言支持:到目前为支持的语言包括
C++
/Java
/Python
/Go
/Ruby
/C#
/Node.js
/Android Java
/Objective-C
/PHP
- 采用
HTTP2
通信
gRPC环境的搭建
操作系统:deepin 15.4
正如前面所说,gRPC
使用HTTP2
作为通信协议,同时官方推荐统一使用Protocol Buffers作为信息编码方式,这一点从gRPC
的github仓库
的子目录下就放着Protocol Buffers
看得出来。
搭建的过程很简单,只需要按着Quickstart中写的顺序依次执行代码就行了,但这样会gRPC
安装到/usr/local
下面。但是我安装软件的习惯是安装到一个指定的目录下。
库名称 | 源码位置(git仓库) | 安装位置 |
---|---|---|
Protocol Buffers | /data/src/grpc/third_party/protobuf | /data/bin/protobuf/protobuf-dev |
gRPC | /data/src/grpc | /data/bin/grpc/grpc-dev |
首先,安装必要的前提程序,然后下载源码(别忘了下载子模块Protocol Buffers
)
$ sudo apt-get install build-essential autoconf libtool curl git
$ git clone https://github.com/grpc/grpc.git
$ cd grpc
$ git submodule update --init
编译并安装Protocol Buffers
$ cd third_party/protobuf/
$ ./autogen.sh
$ ./configure --prefix=/data/bin/protobuf/protobuf-dev
$ make -j4
$ sudo make install
最后就是gRPC
的编译和安装,因为Protocol Buffers
安装到了自定义目录,所以需要更改几个环境变量,使gRPC
能顺利地找到Protocol Buffers
。
$ cd ../../
$ export PKG_CONFIG_PATH=/data/bin/protobuf/protobuf-dev/lib/pkgconfig:/data/bin/grpc/grpc-dev/lib/pkgconfig
$ export PATH=/data/bin/protobuf/protobuf-dev/bin:/data/bin/grpc/grpc-dev/bin:$PATH
$ export LD_LIBRARY_PATH=/data/bin/protobuf/protobuf-dev/lib:/data/bin/grpc/grpc-dev/lib
$ EXTRA_LDFLAGS=-L/data/bin/protobuf/protobuf-dev/lib CONFIG=dbg make prefix=/data/bin/grpc/grpc-dev -j4
$ sudo CONFIG=dbg make prefix=/data/bin/grpc/grpc-dev install
注意,利用上面方法安装的gRPC
程序即使在编译连接后依然输出DEBUG
信息,如果不需要此信息,可以将最后两行修改为如下:
$ EXTRA_LDFLAGS=-L/data/bin/protobuf/protobuf-dev/lib make -j4
$ make prefix=/data/bin/grpc/grpc-dev install
安装结束后,先别急着把源代码文件删掉,因为我们还要运行里面的helloworld
样例来检验安装是否成功。当然也可以自己试着编一个程序跑一跑,这就要等到下一节再说啦。