0.2.0 Xprotocol 拓展机制

整体方案

  1. 支持Xprotocol作为Mesh通信协议
  2. 在proxy配置中增加ExtendConfig,标识Rpc具体协议类型
  3. 在xprotocol/subprotocol中,提供 subprotoco 注册能力,rpc协议处理插件可以通过 init() 注册
  4. rpc协议处理插件统一放在xprotocol/subprotocol下,并需要提供对应单元测试模块,如hsfrpc.go , hsfrpc_test.go(内部协议,不对外公开)
  5. xprotocol框架统一处理 streamId 生成机制,按rpc插件能力处理对应协议,提供不同粒度的解包能力。对相关进行抽象分层:

Codec

  1. 轻度解包: Multiplexing, Accesslog, Rate limit, Curcuit Breakers
  2. 中度解包: Tracing , RequestRouting
  3. 重度解包: ProtocolConvert

细节变更:

本次主要变更文件及目录:

  1. pkg/stream/xprotocol:在stream.go中实现xprotocol插件调用周期,streamId生成机制
  2. pkg/stream/xprotocol/subprotocol:factory.go , types.go 提供插件注册入口
  3. pkg/stream/xprotocol/subprotocol/rpc:rpc协议插件实现,如hsfrpc.go , rpcexample.go
  4. pkg/types/subprotocol.go: xprotocol插件协议接口定义
  5. pkg/types/exception.go:新增 HeaderRpcService , HeaderRpcMethod 提供tracing能力