centos 7下部署grpc

Posted xuelisheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos 7下部署grpc相关的知识,希望对你有一定的参考价值。

 

gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc-go. 其中 C 版本支持 C, C++, Node.js, Python, Ruby, Objective-C, php 和 C#。

gRPC 基于 HTTP/2 标准设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上的多复用请求等特。这些特性使得其在移动设备上表现更好,更省电和节省空间占用。

环境部署:

1、查看centos版本:

技术分享图片

2、安装grpc的提前准备(g++, autoconf等)

yum install -y gcc-c++ autoconf libtool
yum groupinstall -y "Development Tools"

3、下载grpc源码和相关子模块

git clone https://github.com/grpc/grpc.git
cd grpc
git submodule update --init

4、编译安装protobuf(grpc需要用到的组件)

网上有很多方法是使用curl的方式直接从github上使用脚本下载,但是新版(libprotoc 3.6.1)好像不支持修改文件autogen.sh,当然这一步完全可以借助third_party/protobuf/README.txt来部署protobuf,这里我采用直接从github上下载的方式部署:

https://github.com/protocolbuffers/protobuf/releases/

技术分享图片


 直接终端命令:(在目录third_party下)

 

wget https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protobuf-all-3.6.1.tar.gz

 解压后:

mv protobuf-all-3.6.1 protobuf
cd protobuf
./autogen.sh
./configure
make
make check
make install

 如果make check成功,则显示:

技术分享图片

上述操作如果出现了错误,可以查看同级目录下的config.log里面的日志。比如gcc的版本过低等问题。

之后我们可以使用命令:

protoc --version

技术分享图片

来验证protobuf是否安装成功,如果出现:

command not found

则需要添加环境变量或者将生成的protoc二进制拷贝到/usr/bin/目录下。

 

5、编译安装grpc

首先在进到如下的目录下:

技术分享图片

然后分别执行命令:

1 make 
2 make install

 

6、demo测试

官方自带有个HelloWorld的Demo,可以编译这个Demo看是否我们已经安装成功了。

技术分享图片

执行:

make

如果报错:

技术分享图片

则需要如下两条语句:

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
pkg-config --libs protobuf grpc++ grpc

此时再次make发现:

技术分享图片

然后分别启动服务器和客户端

./greeter_server 

 

./greeter_clien

效果:(说明部署成功)

技术分享图片

 

 

 

 

 

补充:

gcc升级到5.3.1:(centos7.3下)

yum install centos-release-scl

yum install devtoolset-4-toolchain

scl enable devtoolset-4 bash

gcc --version        

 

上述内容参考:

http://blog.dreamlikes.cn/archives/555

https://www.jianshu.com/p/efc9167e7044






以上是关于centos 7下部署grpc的主要内容,如果未能解决你的问题,请参考以下文章

centos 7安装gitlab及使用

Centos下安装部署gisserver及centos6-7中文乱码解决

CentOS 7下tomcat应用服务简易安装部署

Centos6.8编译grpc总结

CentOS6.7下Ansible部署

CentOS7.7下docker部署OpenWAF