0.2.0 Xprotocol 拓展机制
整体方案
- 支持Xprotocol作为Mesh通信协议
- 在proxy配置中增加ExtendConfig,标识Rpc具体协议类型
- 在xprotocol/subprotocol中,提供 subprotoco 注册能力,rpc协议处理插件可以通过 init() 注册
- rpc协议处理插件统一放在xprotocol/subprotocol下,并需要提供对应单元测试模块,如hsfrpc.go , hsfrpc_test.go(内部协议,不对外公开)
- xprotocol框架统一处理 streamId 生成机制,按rpc插件能力处理对应协议,提供不同粒度的解包能力。对相关进行抽象分层:
Codec
- 轻度解包: Multiplexing, Accesslog, Rate limit, Curcuit Breakers
- 中度解包: Tracing , RequestRouting
- 重度解包: ProtocolConvert
细节变更:
本次主要变更文件及目录:
- pkg/stream/xprotocol:在stream.go中实现xprotocol插件调用周期,streamId生成机制
- pkg/stream/xprotocol/subprotocol:factory.go , types.go 提供插件注册入口
- pkg/stream/xprotocol/subprotocol/rpc:rpc协议插件实现,如hsfrpc.go , rpcexample.go
- pkg/types/subprotocol.go: xprotocol插件协议接口定义
- pkg/types/exception.go:新增 HeaderRpcService , HeaderRpcMethod 提供tracing能力