Closed smallnest closed 7 years ago
希望尽早提供跨语言支持,毕竟目前做GO的开发人员不多,很多都在游戏界;很多公司因为研发的历史原因不能很快地将现有所有的平台修改成Go,虽然RPCX性能不错,但最终可能因为这些原因导致放弃的;所以提供跨语言还是非常有必要的。
谢谢。
我正在调研Motan的调研,并且有了初步的结果,希望能尽早的和Motan集成。
另外一种方案是直接提供一个Java的客户端。
希望能尽快支持Java、C#和PHP、NodeJS等的客户端支持,我这边正在寻找合适的RPC框架,目前觉得Thrift比较合适,不过我比较偏爱Go,所以希望RPCX这个框架能迅速发展。
考虑到各种跨平台的功能,倾向于用gRPC实现一个agent,各种语言通过gRPC发送给agent, agent通过rpcx发送给rpcx service。
agent部署在客户端本机上。
clientA --------AgentA-
|
...... AgentX | ---------> RPCX Services
|
clientZ--------AhentZ |
从性能上来讲,clientX 与AgentX之间通过gRPC在本地通讯,性能没有问题。 Agent和rpcx services之间通过rpcx通讯,性能也没有问题。些许的性能损耗主要花在中间代理上面。
Agent相当于一个中间代理人。上游支持各种语言,下游与rpcx通讯。 架构简单,跨平台(win/linux/mac)和语言。
增加agent会增加运维成本
没错,但这也是最快实现跨语言的方式之一。 我增加了一个试验性的项目: https://github.com/smallnest/rpcx-agent。
有些公司可能正在使用 Weibo Motan 做开发。rpcx可以提供相关的插件,将自己的服务注册在Motan支持的Registry上, Motan java client可以和rpcx实现的服务交互 (通过JSON或者protobuf格式)。
这个feature不保证实现。目前我在做一些调研,主要看有没有强烈的需求和实现难度。