`

对dubbo进行重构,支持thrift原生协议直接调用

阅读更多

整体思路:不入侵,不改变dubbo原来的任何特性,新增对thrift原生协议支持,原生协议的调用,同样可以进行原来的监控统计。

唯一丢失的特性,就是没有了软路由。因为原生协议不是使用dubbo客户端调用。

 

网上有一种改造的方法,对整条调用链都改了,包括:protocol,exchange,transport,request,response都改了,使用thrift原生server解释执行方法。

这种做法入侵太大,而且完全没有必要。如果你认真看内置的thrift解码、编码模块,你会发现dubbo本身在内部就是模仿了thrift原生client和server进行编码解码,实际上执行效果和性能是完全一样的。

 

重构方法:

1、对dubbo schema的service标签增加一个属性:thrift_native="true"

2、对内置的thrift解码、编码模块进行改造,根据thrift_native值,去兼容原生调用,关键在于原生调用的时候,正确解码出request和编码response。

 

重构只用了一天时间,但研究源码要花很多时间。经过简单测试,已经能正常使用,稍后放到git上。

分享到:
评论
1 楼 wq13480 2016-09-23  
求分享的GIT!!!

相关推荐

Global site tag (gtag.js) - Google Analytics