springboot创建gRPC客户端
1. maven
还没有springboot官方的gRPC客户端,使用的是net.devh
<!-- gRPC --> <dependency> <groupId>net.devh</groupId> <artifactId>grpc-client-spring-boot-starter</artifactId> <version>2.13.1.RELEASE</version> </dependency>
2. application.properties
dl-server自命名,在后面使用
######################gRPC################## grpc.client.dl-server.address=static://127.0.0.1:9999 grpc.client.dl-server.enable-keep-alive=true grpc.client.dl-server.keep-alive-without-calls=true grpc.client.dl-server.negotiation-type=plaintext
3. 将proto文件生成的类放到一个包里
4. 创建一个服务类
@Service public class GrpcClientService { @GrpcClient("dl-server") private PlatformGrpc.PlatformBlockingStub pbStub; public String send(final String name, String id) { try { DlRequest req = DlRequest.newBuilder().setName(name).setId(id).build(); DlReply rep = pbStub.getDl(req); System.out.println(rep.getRes()); }catch(StatusRuntimeException sre) { System.out.println("src-1:"+sre.getMessage()); System.out.println("src-2:"+sre.getStatus().getCode().name()); return "error-src"; //no server:UNAVAILABLE }catch(Exception e) { System.out.println("e---"); return "error-e"; } return "ok"; } }
5. gRPC的代码化配置
@Configuration public class GrpcClientConfig { /** * 配置方式一:在application.properties配置 * 配置方式二,通过init() */ @PostConstruct private void init() { ManagedChannel mc = ManagedChannelBuilder.forAddress("127.0.0.1", 999).usePlaintext().build(); pbInitStub = PlatformGrpc.newBlockingStub(mc); } }
分类:
Spring boot
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!