如何将Grpc添加到您的Java应用程序
发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,这篇文章主要为大家展示了"如何将Grpc添加到您的Java应用程序",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何将Grpc添加到您的Java应用程序"
千家信息网最后更新 2025年11月06日如何将Grpc添加到您的Java应用程序
这篇文章主要为大家展示了"如何将Grpc添加到您的Java应用程序",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何将Grpc添加到您的Java应用程序"这篇文章吧。
Grpc是一个高性能、开源的通用 RPC 框架。
使用 gRPC 有多种好处:
它通过提供客户端/服务器代码来简化开发
它支持多种语言
这一切都始于定义一个 .proto 文件,.proto 文件是位于 src/main/proto 文件中。
请注意:将 proto 文件保存在 repo 上并进行一些模式版本控制是一种很好的做法。通过这种方式,其他团队的开发人员可以通过引用它们来生成他们的 sdk,甚至适用于其他语言。
我们将在 src/main/proto/Order.proto 上创建一个订单服务
yntax = "proto3";option java_multiple_files = true;option java_package = "com.egkatzioura.order.v1";service OrderService { rpc ExecuteOrder(OrderRequest) returns (OrderResponse) {};}message OrderRequest { string email = 1; string product = 2; int32 amount = 3;}message OrderResponse { string info = 1;}为了使用 grpc,需要放置以下相关文件
io.grpc grpc-netty-shaded 1.39.0 io.grpc grpc-protobuf 1.39.0 io.grpc grpc-stub 1.39.0 org.apache.tomcat annotations-api 6.0.53 provided kr.motd.maven os-maven-plugin 1.6.2 org.xolstice.maven.plugins protobuf-maven-plugin 0.6.1 com.google.protobuf:protoc:3.17.2:exe:${os.detected.classifier} grpc-java io.grpc:protoc-gen-grpc-java:1.39.0:exe:${os.detected.classifier} compile compile-custom
通过执行 mvn clean install,将在目标/类上生成类。这些类足以启动服务器并运行客户端与它进行通信。
因此,让我们尝试启动服务器。
我们将创建一个服务实现:
package com.egkatzioura.order.impl; import com.egkatzioura.order.v1.Order;import com.egkatzioura.order.v1.OrderServiceGrpc; import io.grpc.stub.StreamObserver; public class OrderServiceImpl extends OrderServiceGrpc.OrderServiceImplBase { @Override public void executeOrder(Order.OrderRequest request, StreamObserver<Order.OrderResponse> responseObserver) { Order.OrderResponse response = Order.OrderResponse.newBuilder() .setInfo("Hi "+request.getEmail()+", you order has been executed") .build(); responseObserver.onNext(response); responseObserver.onCompleted(); }}然后我们的主类将启动服务器并为请求提供服务:
package com.egkatzioura.order; import java.io.IOException; import com.egkatzioura.order.impl.OrderServiceImpl;import io.grpc.Server;import io.grpc.ServerBuilder; public class Application { public static void main(String[] args) throws IOException, InterruptedException { Server server = ServerBuilder .forPort(8080) .addService(new OrderServiceImpl()).build(); server.start(); server.awaitTermination(); } }当服务器运行时,我们可以启动另一个主类,该类将与服务器通信并向服务器执行 grpc 请求:
package com.egkatzioura.order; import com.egkatzioura.order.v1.Order;import com.egkatzioura.order.v1.OrderServiceGrpc; import io.grpc.ManagedChannel;import io.grpc.ManagedChannelBuilder; public class ApplicationClient { public static void main(String[] args) { ManagedChannel managedChannel = ManagedChannelBuilder.forAddress("localhost", 8080) .usePlaintext() .build(); OrderServiceGrpc.OrderServiceBlockingStub orderServiceBlockingStub = OrderServiceGrpc.newBlockingStub(managedChannel); Order.OrderRequest orderRequest = Order.OrderRequest.newBuilder() .setEmail("hello@word.com") .setProduct("no-name") .setAmount(3) .build(); Order.OrderResponse orderResponse = orderServiceBlockingStub.executeOrder(orderRequest); System.out.println("Received response: "+orderResponse.getInfo()); managedChannel.shutdown(); }}所以我们只是自动生成了 grpc 代码,我们用一个实现支持了一个 grpc 服务,一个服务器启动了,一个客户端从服务器得到了响应。
以上是"如何将Grpc添加到您的Java应用程序"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
服务
服务器
文件
应用程序
程序
应用
内容
客户
客户端
篇文章
代码
多种
语言
学习
帮助
开发
支持
生成
运行
通信
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
罗湖区电力应急网络技术开发工艺
可以用服务器当主机吗
数据库时间戳好用吗
餐厅点餐系统数据库总结致谢
吴阳网络安全
查找数据库 api 源码
开远计算机网络技术服务学校
文章数据库设计
购物中心软件开发
网页的数据库设计
网络安全赛事 意义
管家婆单机版数据库恢复
win7服务器配置
株洲游戏软件开发地址
桌面小软件开发
软件开发学习哪个方向
客户端通过什么找到服务器
网络技术和信息管理啥区别
擅自停止网络安全设备
网络安全的朗读内容
魔兽世界单机数据库怎么修改
武汉联影医疗软件开发待遇
网络安全整治漏洞
为加强网络安全建设
软件开发采购制度
洞悉网络技术视频
网络安全政治心得100字
服务器圆柱体指示灯红色
数据导入数据库的时间
中国移动网络技术员