gRPC入门示例

最近项目需要使用到gRPC来发送服务请求,网上也找了很久,都是一些maven的项目,依赖的jar包版本也不一致,导致前期耗费过多时间,现在特将一些搭建心得写下来,供以后使用。gRPC原理网上链接很多,在此不进行述说。因使用的是Java版本,主要以Java为主,其他语言可参考官网。

1、依赖链接

protoc-gen-grpc-java链接https://repo.maven.apache.org/maven2/io/grpc/protoc-gen-grpc-java/

protoc链接https://github.com/protocolbuffers/protobuf/releases

官网例子https://github.com/grpc/grpc-java/tree/master/examples

本次示例代码https://github.com/hhwode/PersonRPC

2、编写proto文件

只简单定义了请求响应结构与服务接口

3、编译proto文件

下载protoc-3.9.0-win64.zipprotoc-gen-grpc-java-1.23.0-windows-x86_64.exe(版本选择依据gRPC版本进行,此次示例使用gRPC-1.23.0版)

将protoc解压后,放成如下

通过命令生成消息结构体:./protoc --java_out=./ *.proto

通过命令生成服务接口: ./protoc --plugin=protoc-gen-grpc-java=protoc-gen-grpc-java-1.23.0-windows-x86_64.exe --grpc-java_out=./ *.proto

会生成如下几个文件:

4、新建工程

新建java工程,将编译proto生成的文件放入src对应包路径下,与proto设置一致最好,并新建一些自己需要处理的逻辑代码,我最终的结构如下

将依赖的第三方包放入lib文件夹下,下载路径链接: https://pan.baidu.com/s/17T3TB7Ikt0f_HlkxmaBsVA 提取码: hzjb 

代码中最主要的是对proto定义的服务接口的实现,我的实现如下

通过将类对象进行序列化后传输给服务端解析,此处做了较复杂的操作,其实也跟传string一样。

客户端代码可参考官网https://github.com/grpc/grpc-java/tree/master/examples/src/main/java/io/grpc/examples/helloworld

执行服务端与客户端成功:

客户端:

服务端:

5、maven如何将需要的包下载到指定lib文件夹下

使用gRPC的过程主要是jar依赖版本不知道如何查找,这里我们可以通过新建一个maven工程,与grpc-java介绍一致设置

并配置maven下载jar包到指定位置,如本地lib下


完整的pom.xml配置可到https://github.com/hhwode/PersonRPC

在终端,pom.xml文件路径下,输入:mvn install

输出如下信息即下载jar包完成,可到配置的./lib目录下查看。

6、总结

总体而言,官网是最好的教程。

第一次码字,考虑还是不全面。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容