你好,请问有多语言支持的计划不,C++、Go、nodejs等
[apache/dubbo]多语言支持
回答
据说阿里内部有套C++版的,不知道能不能开源的。
可以试试 thrift
很遗憾,多语言支持目前我们没有足够的人力和资源去做,如果大家愿意参与进来,随时联系我,我们很乐意一同推进。 目前我们只是计划在接下来的版本提供restful的跨语言通信支持
多语言支持,很多公司的用法是finagle thrift+参考dubbo做一个服务发现中心。其中Finagle用序列化框架Kryo性能较好。感觉http json作为序列化组件对于java性能还是有点问题
推荐下jsonrpc,dubbo-rpc-jsonrpc是依赖于dubbo做的扩展,而不是直接打包在dubbo一起,所以它可以和现有的dubbo项目直接集成不需要修改代码(使用restful可能我们还需要修改业务代码,接口上可能存在差异),可以和dubbo的版本保持同步。这样的好处是 它是一个插件化的扩展包,可以和dubbo的版本很好相处。 同样,我建议后续在支持restful的时候,它是以外围的扩展包组件存在,而不是嵌入在dubbo内部(个人观点)。dubbo本身很大的优势是具有很好的扩展性,所以我建议一些具体的实现,不是打在dubbo.jar内部,而是分离出插件包来。
服务端扩展包 dubbo-rpc-jsonrpc
客户端 python: dubbo-client-py node: dubbo-node-client
其实只要支持restful,就支持多语言,只是需要自己去写模块封装
多语言方向目前官方的维护方案是计划restful风格支持。 jsonrpc扩展作为一种基于http传输协议的rpc方案,比soap xml、hessian私有协议易用性更好些。 @wuwen5 是否可以把json-rpc这个扩展transfer到dubbo组织下;python node两个扩展也是特定于jsonrpc的吧?
@chickenlj 我们很乐意能transfer到dubbo组织下,希望能一起维护起来。 dubbo组织下fork了一个dubb-rpc-jsonrpc, 需要先删除才能转过去.
python node两个扩展也是特定于jsonrpc的吧?
是的
Thanks @wuwen5 for your jsonrpc contribution
Please checkout the Node.js client: https://github.com/dubbo/dubbo2.js
Other language support can be found at: https://github.com/dubbo
dubbo 是否能和dubbogo(https://github.com/AlexStocks/dubbogo)项目合作,以支持较完整的基于dubbo协议的golang的兼容扩展
If dubbo could work with the dubbogo (https://github.com/AlexStocks/dubbogo) project to support a more complete dubbo-based golang compatible extension?
目前看到的几个方案大致如下: 1:原生的thrift,这个貌似对现有的dubbo服务有一定改动,看官方例子是需要基于thrift的接口提供impl 2:jsonrpc,不需要现有dubbo服务改动,对其他语言也相对轻量级 3:Hessian,这个协议对c++支持也不太友好 4:service mesh,这个应该目前只是一个提案。。 综合来说,jsonrpc应该是比较折中的方案,虽然效率比二进制类可能差点。
https://github.com/apache/incubator-dubbo-rpc-jsonrpc/ 目前这个扩展在生成环境是否可用,想作为c++调用dubbo的一个方案。
@lovepoem @chickenlj
Yes, they are used by Python client and go client.