grpc-solon-cloud-plugin
<dependency>
    <groupId>org.noear</groupId>
    <artifactId>grpc-solon-cloud-plugin</artifactId>
</dependency>
1、描述
分布式扩展插件。基于 grpc 适配的 rpc 插件。此项目可使用 Solon Cloud Discovery 插件包,作注册与发现用。
2、配置示例
- pom.xml 增加注册与发现服务包:
 
来 Solon Cloud Discovery 选一个插件包。
- 服务端 app.yml 增加 grpc 配置:
 
# 服务端声明
server.grpc:
  port: 9090
  name: demo-grpc
- 客户端 app.yml 增加 grpc 配置:
 
# 客户端本地临时声明(或者使用 solon cloud discovery 服务包的配置)
solon.cloud.local:
  discovery:
    service:
      demo-grpc:
        - "grpc://localhost:9090"
3、代码应用
- 服务端(实现接口服务)
 
@GrpcService
public class HelloImpl extends HelloHttpGrpc.HelloHttpImplBase{
    @Override
    public void sayHello(HelloHttpRequest request, StreamObserver<HelloHttpResponse> responseObserver) {
        String requestMsg = request.getMsg();
        String responseMsg = "hello " + requestMsg;
        HelloHttpResponse helloHttpResponse = HelloHttpResponse.newBuilder().setMsg(responseMsg).build();
        responseObserver.onNext(helloHttpResponse);
        responseObserver.onCompleted();
    }
}
- 客户端应用
 
@Controller
public class TestController {
    @GrpcClient("demo-grpc")
    HelloHttpGrpc.HelloHttpBlockingStub helloHttp;
    @Mapping("/grpc/")
    public String test() {
        HelloHttpRequest request = HelloHttpRequest.newBuilder().setMsg("test").build();
        return helloHttp.sayHello(request).getMsg();
    }
}
4、代码演示
https://gitee.com/noear/solon-examples/tree/main/7.Solon-Remoting-Rpc/demo7013-rpc_grpc