公司内部的业务接口都是使用 gRPC 进行通信,最近接入了一些友商,他们需要调用我们的业务接口,但是他们的系统只支持 http 协议的调用,为了减少代码的侵入性,我们计划引入开源网关来充当中间层,通过网关去转发接口信息,并进行 http 与 gRPC 协议的互转。
1 、支持 HTTP 转 gRPC 协议 2 、可以通过 openAPI 新增 /删除接口、配置网关转发信息等操作,方便我们其他程序集成 3 、最好是 go 开发,我们可以自行更改代码
1
iyear 2023-03-20 11:43:01 +08:00 via Android 1
不熟悉具体那几个需求,grpc 和 http 互转的话用的是 grpc gateway
|
2
guoooo00oohao 2023-03-20 11:44:08 +08:00
1. 用 go 开发的 apigateway 且能让你改核心代码, 且经过大规模生产检验我看没有.
2. 对于你的需求, 可以尝试 apisix, 有插件支持 grpc 到 http 转化, 支持插件开发. 不过 golang 的 plugin 看上去还不成熟, lua 的可以. |
3
richangfan 2023-03-20 11:48:41 +08:00
写个 http 服务,在路由层映射一下不就行了
|
4
echoless 2023-03-20 11:53:56 +08:00
|
5
niuroumian 2023-03-20 12:28:02 +08:00
|
6
GopherDaily 2023-03-20 13:15:04 +08:00
- grpc 本身就是基于 http/2 的,你路子野点直接让对面用 http 调用你也行,但是不建议
- 将 json 格式的 grpc 请求转到 protobuf 格式的 grpc 请求基本是都有的功能了,可以直接选你们的反向代理对应的 - 比如 nginx: http://nginx.org/en/docs/http/ngx_http_grpc_module.html |
7
DotLiu 2023-03-20 14:45:39 +08:00
你可以了解一下国产的开源网关 Apinto
仓库地址: https://github.com/eolinker/apinto 目前已经支持了多协议透传,包括 HTTP 、gRPC 、Dubbo2 协议,并且支持协议间的转换 提供 Cli 命令及 openAPI 操作,方便系统集成 拓展性也强,通过自定义插件丰富网关功能和特性 |
8
kaf 2023-03-20 15:30:58 +08:00
|
9
csh995426531 2023-03-20 19:38:12 +08:00
一楼正解
|
10
jooks 2023-03-20 19:58:45 +08:00
Apache ShenYu (Java)
|
11
tairan2006 2023-03-20 20:29:05 +08:00
|
12
samzong 2023-03-20 23:38:13 +08:00
其实可以用下 Contour , projectcontour vmware 出品的还不错
国内去年底阿里弄了 higress |
13
SilencerL 2023-03-21 01:57:16 +08:00
apisix
|
14
eric2Chen 2023-03-21 17:01:40 +08:00
我有在用这个网关,功能上满足我需求,源码看了也挺易懂的,实现自己的插件也不难。就是教程还有待加强。。不过开源的还要啥自行车。。他们有 q 群和微信,回复挺热心的
|
16
Coser OP @iyear 嗯啊,其实是想有没有现成的网关项目,有可视化界面,也可以支持 http 协议的转发,低代码操作,看了一下 grpc gateway ,新增一个服务就需要编译重启,有点麻烦
|
17
Coser OP @guoooo00oohao
感谢您的反馈,下面有童鞋推了 apinto ,看起来满足我的基本需求,我先使用看看 |
18
Coser OP @richangfan
低代码,想找个现成的满足多场景的,实在没法才考虑自己开发,避免重复造轮子 |
19
Coser OP @niuroumian
好的,我了解一下~感谢反馈 |