如何将Grpc添加到您的Java应用程序
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要为大家展示了"如何将Grpc添加到您的Java应用程序",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何将Grpc添加到您的Java应用程序"
千家信息网最后更新 2025年01月19日如何将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安全错误
数据库的锁怎样保障安全
命运2连接不上服务器
联通网络技术大会有哪些
南阳行业专业软件开发
云数据库最新技术
综合实践活动网络安全知多少教案
本地服务器管理员
通讯管理服务器
数据库聚集索引文件结构
东莞无限软件开发供应商
网站服务器管理主要做什么
什么叫您的网络无法连接到服务器
xshell服务器
软件开发服务费是多少钱
什么叫管理网络安全性
小企业服务器硬盘
我的世界网易个人服务器关闭状态
政府网络安全工作如何考核
现在学哪种软件开发语言好
sql文件导入数据库中变少了
腾讯涉不涉及网络安全板块
数据库primery已满
G20浙江网络安全攻击事件
网络安全教案免费小学
MES软件开发工程师怎么样
世界上第一的软件开发大国
网络安全威胁包括什么
软件开发公司双方解除合同
无感人脸识别服务器
广州运维管理软件开发怎么收费
mc服务器文件夹