`
中国爪哇程序员
  • 浏览: 167920 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

dubbo升级dubbox

 
阅读更多


笔者公司部分应用用dubbo暴露服务,随着一些新人加盟,很多人推荐用dubbox。dubbo和dubbox的区别,这里不想赘述,网上有很多资料。

dubbox的官方文档,说对dubbo向下兼容。但本人取dubbox的最新jar,暴露服务,然后用dubbo的客户端调用服务,发现并不兼容。发现是服务端受理请求时,在DecodeableRpcInvocation这个类出现异常,异常出线的行数106行
int argNum = in.readInt();

出现异常的原因报文解析decode异常。这个要了解dubbo协议的报文格式。
in 对象执行read操作,会一个一个偏移读取报文,dubbox提供的服务,当执行该行时,认为报文应该是一个整数,但是确是一个String,解析异常。

然后用beyond工具,做了比较下,比较dubbo和dubbox的源代码,发现dubbo协议序列化Hessian2Input这个类并没有发生变化。

于是大胆修改了dubbox的DecodeableRpcInvocation源代码。先判断dubbo协议版本号,注意是协调版本号,而不是服务版本号。

协议版本号是dubbo控制台,上图打勾的那个version.
如果是2.0.0或者2.8.4 按照dubbox进行解析。这个场合,我认为服务是dubbox暴露出的服务。
其他场合按照dubbo的方式进行解析。
然后打成jar包,上传到公司的git和maven库里。后面dubbo升级到dubbox,就不再从官网上下载jar,而是从公司内部的git或者maven库里获取。

这样升级的场合,就不需要dubbo服务的调用方强制升级,因为是去中心化的,还可以用dubbo的客户端jar调用dubbox的服务。



  • 大小: 15.8 KB
分享到:
评论

相关推荐

    dubbo&dubbox;-master

    而dubbox是当当网对Dubbo进行的一次升级和扩展,它在原版Dubbo的基础上增加了更多的特性。 【描述】中提到的"Dubbo 2.0到2.5的jar包"代表了这个压缩包中包含了Dubbo框架不同版本的历史迭代。这使得开发者能够研究...

    dubbo/dubbox

    Dubbox作为Dubbo的升级版,引入了对RESTful的支持,这意味着服务可以以HTTP接口的形式暴露,大大降低了外部系统接入的难度。此外,Dubbox还增强了监控能力,例如支持Spring Boot Actuator的metrics,让开发者可以更...

    dubbo升级版jar

    本文将深入探讨“dubbo升级版jar”,即dubbox-dubbox-2.8.3,帮助开发者更好地理解和应用这个版本。 首先,我们需要了解dubbox-dubbox-2.8.3的由来。dubbox是基于Dubbo的二次开发版本,由当当网开发并维护,它在...

    dubbox2.8.4版本的dubbo-admin

    【标题】"dubbox2.8.4版本的dubbo-admin"是基于Apache Dubbo构建的一个管理控制台,主要用于监控和管理Dubbo服务。Dubbo是一个高性能、轻量级的开源Java RPC框架,它提供了服务治理、负载均衡、容错、监控等一系列...

    dubbox编译jar包,最新2.8.3版

    基于当当开源dubbox2.8.3代码编译,支持spring3版本 dubbox很长时间没有更新,基于spring2版本,dubbox是当当基于dubbo升级版本,完全支持spring3版本,支持servlet-api3.0

    一.dubbox(dangdang V2.8.4)+springBoot(1.4.2.RELEASE)+dubbo-monitor-web 项目源码

    【dubbox】是由当当网贡献的基于Apache Dubbo的升级版,它增强了原生Dubbo的功能,提供了更多的特性,如REST支持、Zookeeper注册中心等。Dubbo是阿里巴巴开源的一个高性能、轻量级的服务框架,主要用于服务治理,...

    dubbox介绍

    Dubbox是在Apache Dubbo基础上发展而来的一个开源分布式服务框架。它继承了Dubbo的核心功能,并在此基础上进行了扩展和优化,旨在为企业级应用提供更加完善的服务治理方案。 ##### 1.2 Dubbox架构构成 **节点角色...

    dubbox-master.zip 最新的2018.0706

    9. **版本兼容性**:由于是 Dubbo 的增强版,Dubbox 兼容 Dubbo 的大部分特性,使得已有的 Dubbo 应用能够平滑升级到 Dubbox。 10. **社区支持**:Alibaba 的开源项目通常拥有活跃的社区,Dubbox 也不例外,开发者...

    dubbox2.8.4.rar

    Dubbox 是一个基于 Spring 和 Apache Dubbo 的微服务框架,由淘宝开源,旨在提供轻量级、高性能的服务治理方案。2.8.4 版本是 Dubbox 的一个稳定版本,可能包含了一些新特性、优化或者修复了已知的问题。由于在阿里...

    Dubbox2.8.4 admin 和 monitor

    5. **版本兼容性**:Dubbox 2.8.4与早期版本相比,可能修复了一些已知问题,增加了新的功能,同时也保持了与Dubbo原生接口的兼容性,使得升级更为平滑。 综上所述,Dubbox的admin和monitor组件对于实现高效、可靠的...

    dubbox-demos:基于dubbox使用手册

    由于dubbo已经3年没有维护了(他们将dubbo的商用版(edas)放到了阿里云上,所以已经不维护开源版本了)所以不基于dubbo,我选择进行二次开发当当针对dubbo进行了spring、zookeeper、序列化等等升级,并且实现了基于...

    springboot下dubbo2.8.4服务的提供与消费

    在本文中,我们将深入探讨如何在SpringBoot环境下利用Dubbo 2.8.4实现服务的提供与消费。首先,我们需要理解SpringBoot和Dubbo的基本概念。SpringBoot是基于Spring框架的一个快速开发工具,它简化了Spring应用的初始...

    dubbox2.8.4的全部源码

    Dubbox是阿里巴巴开源的一个基于Java的RPC框架,它由dubbo升级而来,增加了对REST、Hessian2等协议的支持,并且在配置和使用上更加灵活。这次分享的是未经Maven编译的原始Git克隆资源,这意味着用户可以深入理解框架...

    dubbox的jar包.rar

    10. **版本升级**:Dubbox-2.8.4 是 Dubbox 的一个稳定版本,相比于早期版本,可能包含了一些性能优化、新功能添加或者已知问题的修复,确保了服务的稳定性和兼容性。 综上所述,"dubbox-2.8.4.jar" 是 Dubbox 框架...

    dubbox源代码

    Dubbox 允许对服务接口进行版本控制,以便在不中断现有服务的情况下,进行接口的升级和调整。在源代码中,可以看到如何通过接口名和版本号来匹配和调用对应的服务。 9. **扩展性** Dubbox 的设计充分考虑了扩展性...

    修改dubbox支持sping4

    标题“修改dubbox支持spring4”涉及到的是一个关于Dubbo和Spring集成的议题,Dubbo是一个高性能、轻量级的开源Java RPC框架,而Spring则是一个广泛应用的全面的企业级应用开发框架。在这个主题中,我们需要理解如何...

    dubbo-admin-2.8.4 兼容jdk1.8

    这一版本的发布,确保了用户在使用过程中无需为了运行Dubbo Admin而升级或更换JDK版本,从而降低了开发环境的配置复杂度,提高了开发效率。 Dubbo,由阿里巴巴开源,是一款高性能、轻量级的Java远程服务调用框架,...

    dubbox小demo.7z

    Dubbox是基于Dubbo的扩展,它提供了更多的功能和更好的灵活性,使得在分布式环境中的服务开发变得更加简单。Dubbo是一款由阿里巴巴开源的高性能、轻量级的服务治理框架,而dubbox则是在此基础上进行了一些增强和优化...

    Dubbox+Redis3.0+Spring+Hibernate+zookeeper实现消息推送核心搭建

    1. **Dubbox**: Dubbox 是阿里巴巴开源的一个基于 Java 的分布式服务框架,它是 Dubbo 的升级版,增加了对 HTTP、REST 和 Hessian 2 等协议的支持。在消息推送系统中,Dubbox 可以作为服务治理的工具,提供服务发现...

    springboot dubbox 实例 (springbootdubbox-productor)

    标题中的“springboot dubbox 实例 (springbootdubbox-productor)”指的是一个使用Spring Boot集成Dubbo的项目实例,其中“productor”意味着这是一个生产者服务,它将提供服务或者调用其他服务。 首先,我们需要...

Global site tag (gtag.js) - Google Analytics