Closed cyshi closed 7 years ago
赞!这样升级后对数据协议的扩展更加灵活。
有一点想法就是need_multi_connection是否独立出来作为channel的一个选项更加合适?因为数据协议和连接模式解耦好像更灵活一点。例如pb协议在一般的场景下单连接即可,在采用backup_request策略时可能开启多连接效果更好。
@zd-double 没太明白
用户创建 RpcChannel 时,应指定这个channel对应的协议
实际连接模式已经是channel的一个选项了
@cyshi , hello,请问客户端多协议支持在开发中吗?
@wankai sorry 涉及了一些厂里自有协议 暂时不能开源
背景
目前存在许多通信框架,而各个框架又都使用自己的一套协议。用户从一个框架迁移到另一个框架的时候,要么需要开发代理,要么就全部迁移,负担比较重。此外,通过升级多协议的支持,rpc也可以方便的访问各类其他服务,例如redis等。
实现
创建一个协议池,用于注册和查找协议
用户创建
RpcChannel
时,应指定这个channel对应的协议实现的协议都放在
src/sofa/pbrpc/policy
下第一步准备升级client,可能涉及的改动 包括
RpcClientImpl
中序列化,打包部分;RpcMessageStream
中切割消息部分等