- 所有的对外接口都是用 pd 来定义的,能不能在网关这一层做协议的转换
- 如果可以做转换,那么是手写还是程序自动转换还是说只能生成模版文件降低人工
想了几种办法,还是思路不是很清晰,各位大佬给个思路呗。。。
想了几种办法,还是思路不是很清晰,各位大佬给个思路呗。。。
|
qW7bo2FbzbC0Jul 14, 2021
1
rpc 包含 http,你说的那种是不是 grpc,dubbo 那种?把 http 请求包一包不就是本地方法了吗,只是序列化与传输方式不同而已
|
|
vchrocJul 14, 2021
2
关键词:泛化调用
|
|
3
确实是 grpc 主要的问题就是用 pd 定义后,走后面的服务请求需要 pd 文件内的已经定义的数据格式,如果程序自动获取好像自动获取不到。。
|
|
renyijiuJul 14, 2021
4
|
|
Cy1Jul 14, 2021
5
pd 是啥。。
|
|
6
@renyijiu 感谢感谢,我去好好看看
|
|
7
@Cy1 一种数据传输格式,跟 json 和 xml 是一类产品
|
|
Cy1Jul 14, 2021
8
你说的怕不是 pb,protobuf ?
|
|
9
@Cy1 是
|
|
Cy1Jul 14, 2021
10
我们内部是在 SpringMVC 是基础上做的,做一个特定路径如 '/url' 的 MappingHandler,
在这个 handler 里面做自己的 pb 分发,rpc 也是这样做的 |
|
11
@Cy1 每加一个路由都是自己做的转发是吗?
|
|
Cy1Jul 14, 2021
12
自己定义一套类似于 @RestController,@RequestMapping 的 @MessageController,@MessageMapping,然后一个 SpringMVC 的一个特定的 HandlerMethod 内实现类似于 SpringMVC 的整个链路的流程,参考 SpringMVC 里面 HandlerMapping,HandlerChain,HandlerAdapter 的设计,做好自己的分发以及 Request,Response 的 pb 的序列化和反序列化就行。
最终用起来的效果类似于这样 @MessageMapping(PBMessageType.ADMIN_RESET_PASSWORD) PBAdmin resetPassword(PBResetAdminPasswordReq req) { ...... } |
|
cloverstdJul 14, 2021
13
|
|
JudoonJul 14, 2021
14
http://apisix.apache.org/
直接上全能型网关 |
|
labulaka521Jul 14, 2021
15
我们这里使用 envoy 来实现的 内部是 grpc 通信,外部进来通过 envoy 转
|
|
16
其实是有些定制化的需要,更想要的是一种插件的式的协议转换,现在就是两种选择,第一种就是网关自己写对前端请求的粗力度的接口,然后根据不同的业务线进行拆分成不同的网关。第二种就用一些常见的网关系统对请求进行二次的下沉。所以想找找别人的网关是怎么做的。。。
|
|
LonensoJul 14, 2021
17
jsonrpc
|
|
young1linJul 14, 2021
18
你对 RPC 有个错误的认知了吧? RPC 全称 Remote procedure call,其实现,HTTP 、gRPC 都是可以的啊
|
|
wm5d8bJul 15, 2021 via Android
19
HTTP/2+protobuf,和 grpc 在通信效率上有哪些差异?
|
|
20
@wm5d8b 额,可能我没太说明白,当前的场景是 用 grpc 框架 从前端到网关这里是 http1.1 那么从网关到最终的服务都是使用的 grpc,所以这里就是 从 http1.1 到 rpc 的
|
|
21
@young1lin 嘿呀,我只不过是个小学生,想向问问各位哥哥姐姐的,您项目是怎么样的流程能大致说说吗
|
|
zjyl1994Jul 15, 2021
22
|
|
jinzhongyuanJul 15, 2021
23
@Cy1 他这个简称,是业界统一的吗??
|
|
Cy1Jul 16, 2021
24
@jinzhongyuan 什么简称
|
|
NCEJul 19, 2021
25
网上有现成的方案吧? gg 下 gateway rpc
|