grpc部署初体验

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

     

要使用grpc进行正常的开发运行,必须集齐三样法宝,分别是:

     Protocol Compiler,使.proto生成序列化代码,如helloworld.proto,通过protoc命令生成如下java文件:

     grpc部署初体验_第1张图片

   

     Protobuf Runtime,针对特定语言的运行时库,如java中即是protobuf-java前缀的jar包。

     protoc-gen-grpc-java插件,生成通讯代码,如:

   

这三样法宝都可以在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部署初体验)