目录
特点 使用方式 gRPC 服务端
gRPC 客户端
Grpc Spring Boot Starter
特点
使用 Spring Boot 的应用进行自动配置,内嵌 gRPC server
支持 Spring Cloud (可以通过 Spring Cloud 进行服务注册并且获取 gRPC server 的信息)
支持 Spring Sleuth 进行应用跟踪
支持对于 server 、 client 分别设置全局拦截器或单个的拦截器
支持 keepalive
使用方式
gRPC 服务端
添加依赖如果使用的是 Maven
1 2 3 4 5 | <dependency> <groupId>net.devh</groupId> <artifactId>grpc-server-spring-boot-starter</artifactId> <version> 1.0 . 0 .RELEASE</version> </dependency> |
添加依赖如果使用的是 Gradle
1 2 3 | dependencies { compile 'net.devh:grpc-server-spring-boot-starter:1.0.0.RELEASE' } |
实现 Grpc 生成的接口,并使用 @GrpcService
注解
1 2 3 4 5 6 7 8 9 10 | @GrpcService (GreeterGrpc. class ) public class GrpcServerService extends GreeterGrpc.GreeterImplBase { @Override public void sayHello(HelloRequest req, StreamObserver<HelloReply> responseObserver) { HelloReply reply = HelloReply.newBuilder().setMessage( "Hello =============> " + req.getName()).build(); responseObserver.onNext(reply); responseObserver.onCompleted(); } } |
设置 gRPC 的 host 跟 port 在 application.properties ,默认的监听的 host 是 0.0.0.0 ,默认的 port 是 9090
1 2 | grpc.server.port= grpc.server.host= |
gRPC 客户端
添加依赖如果使用的是 Maven
1 2 3 4 5 | <dependency> <groupId>net.devh</groupId> <artifactId>grpc-client-spring-boot-starter</artifactId> <version> 1.0 . 0 .RELEASE</version> </dependency> |
添加依赖如果使用的是 Gradle
1 2 3 | dependencies { compile 'net.devh:grpc-client-spring-boot-starter:1.0.0.RELEASE' } |
使用 @GrpcClient
注解去设置 Channel 或者 也可以通过 GrpcChannelFactory
中的 createChannel
得到 Channel
1 2 | @GrpcClient ( "gRPC server name" ) private Channel serverChannel; |
gRPC request
1 2 | GreeterGrpc.GreeterBlockingStub stub = GreeterGrpc.newBlockingStub(serverChannel); HelloReply response = stub.sayHello(HelloRequest.newBuilder().setName(name).build()); |
设置 gRPC 服务器的 host 跟 port 在 application.properties ,默认的 host 是[127.0.0.1],默认的 port 是[9090]
1 2 | grpc.client.(gRPC server name).host[ 0 ]= grpc.client.(gRPC server name).port[ 0 ]= |
转载:https://www.v2ex.com/t/343538
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2017-11-17 BZOJ 1029 [JSOI2007]建筑抢修 (贪心 + 优先队列)
2017-11-17 BZOJ 1444 [Jsoi2009]有趣的游戏 (AC自动机 + 概率DP + Gauss)
2016-11-17 HDU 5023 A Corrupt Mayor's Performance Art (据说是线段树)
2016-11-17 HDU 5024 Wang Xifeng's Little Plot (DP)
2016-11-17 HDU 1885 Key Task (BFS + 状态压缩)
2016-11-17 HDU 1165 Eddy's research II (找规律)
2016-11-17 CCF 201409-2 画图 (暴力)