java grpc_Java + gRPC + grpc-gateway 的实践

本文介绍了如何使用Java、gRPC和gRPC Gateway创建API服务。通过protobuf进行数据序列化,gRPC作为RPC框架,grpc-gateway作为转换器,实现HTTP到gRPC的请求转换。详细阐述了项目组成、实现过程以及未来可能的优化,如Swagger JSON生成、预览和自动化构建流程。
摘要由CSDN通过智能技术生成

​ 之前我们团队在 Go 语言上已经统一使用 gRPC + grpc-gateway 来提供 API 服务,最近为了写一个提供一个用于管理分析任务的接口服务,需要使用 Java 来实现(因为需要访问 HBase/HDFS/Flink等,Java 最方便),而 GRPC Gateway 本身是跟语言无关的,所以我就趁着这次机会尝试了一把,发现效果还挺好的

需要了解的基础Protocol buffers 用来序列化数据的框架

gRPC 基于 Protobuff 的 RPC 框架

grpc-gateway 是一个 protoc 的插件,会读取 gRPC 的 proto 定义,然后生成一个把 RESTful 的 API 转换成 gRPC

grpc-gateway 的一些细节

从原理图可知,通过 grpc-gateway 提供的工具,可以生成一个 gateway, gateway 接收 HTTP 请求, 然后把请求再转换成 gRPC 的请求发给 gRPC Server,从 Server 收到响应之后,再将 gRPC 的响应转换为 HTTP 响应返回给客户端

不论 gRPC Server 是通过何种语言实现的,通过 grpc-gateway 都可以实现 HTTP 的方式来访问接口服务

实现

项目组成

dota2-bristleback-job-mgr,是基于 Java + gRPC 提供 RPC 的接口服务

用到的 grpc mvn 插件是 org.xolstice.maven.plugins.protobuf-maven-plugin(这个插件只支持指定一个目录来生成 protobuf/gRPC 的文件,可以用 com.github.os72.prot

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值