grpc部署初体验

grpc是google开源的RPC框架,基于http2协议和ProtoBuf序列化机制,关于它的使用实例在官方文档已经有比较详细的介绍,在此仅对安装部署过程作一番总结。

要使用grpc进行正常的开发运行,必须集齐三样法宝,分别是:
Protocol Compiler,使.proto生成序列化代码,如helloworld.proto,通过protoc命令生成如下java文件:
grpc部署初体验
文章图片


【grpc部署初体验】
Protobuf Runtime,针对特定语言的运行时库,如java中即是protobuf-java前缀的jar包。
protoc-gen-grpc-java插件,生成通讯代码,如:
grpc部署初体验
文章图片


这三样法宝都可以在github找到相应的安装包,当然,也可以自己编译生成,但在部署过程中千万要注意它们之间的版本一定要匹配,如Protocol Compiler用了v3.0.0,相应的Protobuf Runtime也是v3.0.0,但是protoc-gen-grpc-java用的却是v0.8.0,相应的grpc-all jar包也是0.8.0,这肯定是不行的,而且就算你找到了相应的版本,在linux环境编译安装过程中会遇到一些缺少文件的错误,涉及一些编译,C语言库的知识,这是一个很不错的探索机会,但是生产使用过程中我们需要的是安全,简洁,高效,把一部分过程封装起来,使用一些工具来统一管理这一过程,使用maven插件就是一个不错的方法,不需要很多步骤,只需要在pom.xml中加入一个配置即可,如你使用grpc v0.14.0:



kr.motd.maven
os-maven-plugin
1.4.1.Final




org.xolstice.maven.plugins
protobuf-maven-plugin
0.5.0


com.google.protobuf:protoc:3.0.0-beta-2:exe:${os.detected.classifier}

grpc-java

io.grpc:protoc-gen-grpc-java:0.14.0:exe:${os.detected.classifier}

${basedir}/src/main/java
false




compile
compile-custom






(参考来源:github官网)

此com.google.protobuf:protoc:3.0.0-beta-2:exe:${os.detected.classifier}中的版本号3.0.0-beta-2要和protobuf-java jar包的版本号一致,而io.grpc:protoc-gen-grpc-java:0.14.0中的版本号和你使用的grpc-all jar包中的版本号一致,outputDirectory代表生成的java文件的存放路径,而设置clearOutputDirectory为false,是为了执行compile和compile-custom过程中不覆盖前一步骤生成的文件。
一切就绪,maven install下,它会自动帮你安装缺少的插件并生成java文件。
中文官方文档:http://doc.oschina.net/grpc?t=57966
java达人
ID:java_daren
grpc部署初体验
文章图片

    推荐阅读