Spring Boot+Nacos+gRPC,一个区别于 OpenFeign 的微服务通信方案!( 三 )

注意,客户端 grpc 的依赖是 grpc-client-spring-boot-starter,其他的基本上和服务端一致 。
然后配置客户端,将之注册到 nacos 上,如下:
server:port: 8088spring:cloud:nacos:discovery:enabled: trueserver-addr: hc.javaboy.org:8848username: nacospassword: nacosapplication:name: grpc_clientgrpc:client:grpc_server:negotiation-type: plaintext最后面有一个 grpc_server,这个是固定的(依据就是 grpc_server 注册到 nacos 上的名称),表示这个服务的通信不使用 TLS 加密 。
最后再来看看调用代码:
@RestControllerpublic class HelloController {@AutowiredGrpcClientService grpcClientService;@GetMapping("/hello")public void hello() {grpcClientService.hello();}}@Componentpublic class GrpcClientService {@GrpcClient("grpc_server")HelloServiceGrpc.HelloServiceBlockingStub helloServiceBlockingStub;public void hello() {StringValue s = helloServiceBlockingStub.sayHello(StringValue.newBuilder().setValue("javaboy").build());System.out.println("s = " + s.getValue());}} 这里的核心其实就是通过 @GrpcClient? 注解注入一个 HelloServiceBlockingStub 实例,其中 @GrpcClient 注解中的参数就是注册到 nacos 上服务的名字,将来会自动根据服务的名字查找到服务的具体地址进行调用 。
好啦,大功告成 。
接下来我们启动 grpc_server 和 grpc_client 就可以进行测试了 。




推荐阅读