封装grpc
Posted 还是那个徐东强
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了封装grpc相关的知识,希望对你有一定的参考价值。
grpc的一个简单封装demo,使业务开发者不需要关心底层的grpc实现,就可以使用grpc。
rpc-demo-api: 定义proto文件
服务提供方只需要依赖rpc-remoting-netty-server,同时service实现rpc-demo-api中的接口。
服务消费方只需要依赖rpc-remoting-netty-client,通过自定义注解@Reference就像装配一个本地的service,直接执行方法,返回结果。
目录结构如下:
定义proto文件,包括service定义,请求参数和响应数据
以user为例,代码27行会生成 java类UserGrpc的service定义。
UserRequest和UserReply均会生成对应的java类。
因为pom中引入了protoc-gen-grpc-java的插件,编译后会自动生成对应的java类。
服务提供方
pom中依赖rpc-demo-api和rpc-remoting-netty-server。
service实现了UserGrpc.UserImplBase,这是根据user的proto文件生成的java类中的一个抽象类。
通过自定义的注解@RemoteService将服务注册到服务端。
服务消费方
pom中引入了rpc-demo-api和rpc-remoting-netty-client。
通过自定义的@Reference像注解@Autowired自动装配service,像执行本地方法一样。
测试效果如下:
1.启动服务端,执行Provider中的main方法
2.服务消费端,直接执行@Test的用例
执行ConsumerTest中的test2的用例
代码发在码云上
https://gitee.com/XuDongQiang/grpc.git
以上
以上是关于封装grpc的主要内容,如果未能解决你的问题,请参考以下文章