整体思路:不入侵,不改变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上。
相关推荐
thrift官方代码+与dubbo集成支持原生thrift协议
nodejs 使用原生的 dubbo (dubbo head hessian body) 协议打通了 dubbo 的 rpc 方法调用 .
java运行依赖jar包
该插件直接放于 jmeter ext/lib包下面即可,可以直接对dubbo接口发起测试,支持jmeter30以上版本,这个是鄙人写的一个专门用于jmeter-dubbo接口自动化测试的插件,原理是通过dubbo appconfig类,直接写客户端调用,...
1、Dubbo 远程调用实现 2、内带zookeeper-3.4.5消息服务 3、直接导入myeclipse运行:dubbo-server导入tomcat中运行 4、dubbo-client 运行测试类/dubbo-client/src/com/fengjx/main/Consumer.java
使用Dubbo进行远程调用实现服务交互,它支持多种协议,如Hessian、HTTP、RMI、Memcached、Redis、Thrift等等。由于Dubbo将这些协议的实现进行了封装了,无论是服务端(开发服务)还是客户端(调用服务),都不需要...
Dubbo调用java接口程序
ice-dubbo-thrift-grpc性能测试对比 ,ice-dubbo-thrift-grpc性能测试对比,ice-dubbo-thrift-grpc性能测试对比,ice-dubbo-thrift-grpc性能测试对比
dubbo提供与调用方配置文件,及web配置,涉及主要用于dubbo
thrift协议扩展 ` (thrift2(?),thrift093(建议在系统里都使用这个协议),swift(暂时不支持)),以原生协议提供服务. thrift0.9.1之后开始支持多路复用;这里我新增的部分没有使用这一特性,所以理论上是支持从thrift0.8.0...
使用注解DubboRefence可以标注接口类为调用dubbo api的接口,同时 @DubboReference 的注解可以像Dubbo的Refence一样指定接口的调用参数,@DubboReference 注解标注的接口类会执行Http协议转Dubbo协议,之后的接口...
spring boot 调用dubbo实例,可以运行,需要安装dubbo服务器。
java运行依赖jar包
本项目案例“妻子”作为消费者去调用生产者(“丈夫”)的服务--洗碗 本项目需要注意 @DubboReference private HusbandService husbandService; @EnableDubbo @DubboService 这几个注解不能忘,否则会报错,或者...
极简模式:通过dubbo提供的telnet协议收发数据。 普通模式:通过封装netty客户端收发数据。 用例模式:通过缓存数据,方便下一次操作,依赖普通模式。 增加依赖:通过调用maven命令,下载jar包和热加载到系统,主要...
dubbo-2.8.5-SNAPSHOT.jar ,升级到spring4,支持rest ,thrift原生协议,avro,grpc
dubbo管理工具 支持jdk8 .
对原有的dubbo远程调用的异步的缺陷性进行了优化方案
dubbo服务端可以定义其接口、以便其他dubbo客户端调用其接口方法。
引入 dubbo框架 需要引用dubbo标签,dubbo.xsd 可以解决标签不识别的问题