如何将Grpc添加到您的Java应用程序
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要为大家展示了"如何将Grpc添加到您的Java应用程序",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何将Grpc添加到您的Java应用程序"
千家信息网最后更新 2026年10月31日如何将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安全错误
数据库的锁怎样保障安全
疫情对互联网科技公司影响
互联网科技垄断
港股互联网科技股
华宇互联网科技
合肥互联网科技公司
碳银互联网科技
丰台科技园 互联网
上海亿帐通互联网科技
互联网科技大会案例
盛创互联网科技有限公司
福州新华互联网科技学校 知乎
成都互联网科技公司100强
互联网系的金融科技公司
互联网时代科技改变生活
辽宁互联网新科技
合肥互联网科技公司公章图片
电子商务与互联网科技的关系
广州梦谷互联网科技有限公司领导
互联网高科技行业有哪些企业
颐高云石互联网科技
广州紫鲸互联网科技有限公司
互联网中国科技
互联网科技金融
广州互联网科技公司
互联网科技大会
恒生科技互联网指数分析
互联网 科技馆
佛山市拉法互联网科技有限公司
黑龙江互联网科技公司
青岛互联网科技园