如何将Grpc添加到您的Java应用程序
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,这篇文章主要为大家展示了"如何将Grpc添加到您的Java应用程序",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何将Grpc添加到您的Java应用程序"
千家信息网最后更新 2025年02月23日如何将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安全错误
数据库的锁怎样保障安全
河南单招软件开发大学
更换网站和服务器
正版河南软件开发公司电话
万得资讯数据库怎么查数据
软件开发产品定位
网络安全 boss直聘
软件开发工作室 税率
无锡 软件开发公司
范晓琳 嘉兴市佳捷网络技术
网络安全放假值班表
办公自动化网络技术质量要求
服务器可以不用raid卡吗
云顶之弈哪个服务器水平高
智慧云服务器管理员
lol英雄服务器
我的世界中国年服务器地址是什么
大学有软件开发专业没
我国网络安全防御机制现状
泰安网络技术公司
汽车维修管理软件开发
平谷软件开发有限公司
计算机网络技术专业课程有多少科
软件开发合同 判例
北邮SMTP邮件服务器实验报告
计算机网络技术1.7答案
java微服务数据库技术
贵阳推广软件开发是做什么的
网络技术与远程教育
网络安全监察的专业
数据库营销企业举例