语言的版本,以及后续的功能升级与版本维护代价都非常高。
3. 开发一个 Agent 模块,实现绝大部分的服务治理能力
例如motan Client + Agent方式。Agent在不同服务的Server或Client侧运行。然后为不同语言开发一个很轻量的 Client 与 Agent 进行交互,由于 Client 只实现必要的交互功能,降低了不同语言版本的开发量与维护的成本。
五、可考虑的方案
- (如果是JSON效率低)考虑使用Google Protocol Buffers, thrift, Hessian等更高效序列化方式。
- (如果是服务治理功能低)保持原来HTTP+JSON方式不变,优化服务治理功能
- 自己基于已有开源框架二次开发(参考motan Client + Agent思路)
- 使用Dubbo Restful
六、参考资料
- 微博轻量级RPC框架Motan正式开源:支撑千亿调用
- 微博开源的Motan RPC最新进展:新增跨语言及服务治理支持
- 跨语言统一治理、Golang,谈谈另辟蹊径的开源RPC框架Motan
- 在Dubbo中开发REST风格的远程调用(RESTful Remoting)
- https://github.com/weibocom/motan/issues/186#issuecomment-243055131
- 跨语言统一治理、Golang,谈谈另辟蹊径的开源RPC框架Motan
七、其他相关资料
- 贝聊系统架构服务化之路
- 逆天:蘑菇街下单平台演进,从PHP到Java
- 服务化框架技术选型实践
- 饿了么分布式服务治理及优化经验
- 微博平台的RPC服务化实践
- 多语言支持
|