对dubbo进行重构,支持thrift原生协议直接调用
2016-07-12 23:03
369 查看
整体思路:不入侵,不改变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上。
唯一丢失的特性,就是没有了软路由。因为原生协议不是使用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上。
相关文章推荐
- Think4Android(二)之Button
- Struts2
- 会话状态
- dubbo三种协议性能对比
- iOS流媒体开发之二:滑动手势控制音量、亮度和进度
- Core 发布至Linux
- win7 绿色版MySQL安装与配置
- dubbo dubbo-thrift thrift三种协议直观对比
- 一个Android JAVA代码中的各显示单位转换工具
- C语言
- (转)“Cookie交换”保证传输流畅通
- C语言数据类型(一)——基本知识点
- Unix网络编程卷一笔记
- 混沌时间序列的几个例子
- 解决chrom字体小于12号都显示为12号的办法
- iOS流媒体开发之一:总结系统提供的接口
- 搜狐面经总结。(搜狐老师满满干货)
- Spring+MyBatis
- sql数据库带补全终端命令
- 网络协议及网络软件框架设计