HTML5技术

阿里Dubbo疯狂更新,关Spring Cloud什么事? - 纯洁的微笑

字号+ 作者:H5之家 来源:H5之家 2017-11-21 14:06 我要评论( )

最近,开源社区发生了一件大事,那个全国 Java 开发者使用最广的开源服务框架 Dubbo 低调重启维护,并且 3 个月连续发布了 4 个维护版本。 我上次在写放弃Dubbo,选择最流行的Spring Cloud微服务架构实践与经验总结这篇文章的时候,就有很多的网友给我留言说

最近,开源社区发生了一件大事,那个全国 Java 开发者使用最广的开源服务框架 Dubbo 低调重启维护,并且 3 个月连续发布了 4 个维护版本。

我上次在写放弃Dubbo,选择最流行的Spring Cloud微服务架构实践与经验总结这篇文章的时候,就有很多的网友给我留言说,Dubbo 又开始更新了。我当然是清楚的,我也一直在关注着 Dubbo 的走向,在几个月前技术圈里面就有一个消息说是 Dubbo 又开始更新了,大家议论纷纷不知真伪。我还专门跑到 GitHub 上面进行了留言询问,最后在 Dubbo 的 gitter 聊天室里面找到了确信的答案,说是正在组建团队。虽然稍稍有所期待,但也不知道阿里这次拿出了多少的诚意来做这件事,于是我昨天又到 GitHub 逛了一下,发现从 9 月开始,阿里三个月连着发布了四个版本,还是非常有诚意的,值得关注。


Dubbo简介

Dubbo 是阿里巴巴公司一个开源的高性能服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案,使得应用可通过高性能 RPC 实现服务的输出、输入功能和 Spring 框架无缝集成。Dubbo 包含远程通讯、集群容错和自动发现三个核心部分。

它提供透明化的远程方法调用,实现像调用本地方法一样调用远程方法,只需简单配置,没有任何 API 侵入。同时它具备软负载均衡及容错机制,可在内网替代 F5 等硬件负载均衡器,降低成本,减少单点。它可以实现服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的 IP 地址,并且能够平滑添加或删除服务提供者。

2011 年末,阿里巴巴在 GitHub 上开源了基于 Java 的分布式服务治理框架 Dubbo,之后它成为了国内该类开源项目的佼佼者,许多开发者对其表示青睐。同时,先后有不少公司在实践中基于 Dubbo 进行分布式系统架构。目前在 GitHub 上,它的 fork、star 数均已破万。

Dubbo核心功能:


Dubbo发展史



发展到开源

2008 年底在阿里内部开始规划调用,2009 年初开发 1.0 版本;2010 年 04 月在 1.0 的版本之上进行了重构,发布了 2.0 版本;2011 年 10 月阿里宣布将 Dubbo 开源,开源的第一个版本为版本 dubbo-2.0.7。


开源成长

Dubbo 开源之后,框架发展比较迅速,几乎两三个月会发布一个版本,于 2012 年 3 月 14 号发布版本 dubbo-2.1.0。随后又进入另一个快速发展期,版本发布频繁,几乎每一个月会发布好几次。直到 2013 年 3 月 17 号发布了 dubbo-2.4.10,版本陷入停滞;2014 年 10 月 30 号发布版本 dubbo-2.4.11,修复了一个小 Bug,版本又陷入漫长的停滞到现在。


阿里之外的发展

2014 年的 10 月 20 号,当当网 Fork 了阿里的一个 Dubbo 版本开始维护,并命名为 dubbox-2.8.0。值得注意的是,当当网扩展 Dubbo 服务框架支持 REST 风格远程调用,并且跟随着 ZooKeepe 和 Spring 升级了对应的版本。之后 Dubbox 一直在小版本维护,2015 年 3 月 31 号发布了最后一个版本 dubbox-2.8.4。



Dubbo团队这三个月都做了什么

目前 Dubbo 的主力开发以阿里巴巴中间件团队为主,同时在阿里内部也招募了一些对 Dubbo 感兴趣的同事。大家要知道,Dubbo 距离今年开始维护的上一个版本是什么时间发布的吗?是 2014 年 10 月 30 号,差了整整将近 3 年,Dubbo 所依赖的 Jdk、Spring、Zookeeper、Zkclient 等等不知道都更新了多少个版本。因此阿里恢复更新的第一步就是适配所依赖的各组件版本,让 Dubbo 所依赖的基础环境不要太落伍,另外也 Fixed 掉了一些严重的 Bug。


dubbo-2.5.4/5版本

2017 年 9 月,阿里发布了 dubbo-2.5.4/5 版本,更新内容如下:

依赖升级

依赖 当前版本 目标版本 影响点

spring 3.2.16.RELEASE 4.3.10.RELEASE schema配置解析;Http RPC协议

zookeeper 3.3.3 3.4.9 常用注册中心

zkclient 0.1 0.10 zookeeper 客户端工具

curator 1.1.16 2.12.0 zookeeper客户端工具

commons-logging 1.1.1 1.2 日志实现集成

hessian 4.0.6 4.0.38 hessian RPC协议

jedis 2.1.0 2.9.0 redis注册中心;缓存RPC

httpclient 4.1.2 4.5.3 hessian等用http连接池

validator 1.0.0 1.1.0.Final java validation规范

cxf 2.6.1 3.0.14 webservice

jcache 0.4 1.0.0 jcache规范

这版在升级相关依赖版本的同时,以问题反馈频率和影响面排定优先级,优先解决了几个反馈最多、影响较大的一些缺陷,包括优雅停机、异步调用、动态配置、MonitorFilter 监控统计等问题。



dubbo-2.5.6版本

2017 年 10 月,阿里发布了 dubbo-2.5.6 版本,又 Fixed 掉了一大批严重的 Bug。

发布内容

  • 一些小bug修复:动态配置不能删除、telnet支持泛型json调用、monitor统计错误等


    dubbo-2.5.7版本
  • 2017 年 11 月,也就是 12 天前,阿里发布了 dubbo-2.5.7。这次不但修复了一批主要的 Bug,还做了一处小功能的完善。

    发布内容

    这次版本发布内容较多,因此还给出了升级建议。


    升级请注意

  • 此次升级存在以下不兼容或需要注意点,但对核心功能均无影响,且只需添加依赖或遵守配置规则即可避免。这里只是把潜在的注意点列出来,如果你没用到这些功能无需额外关注。
  • AccesslogFilter、telnet、mock等部分功能依赖了老版JSON实现,如开启以上功能,升级后请添加fastjson作为第三方依赖。
  • 此次升级完善了注解配置方式,同时保留了老的注解配置代码,如工程从之前的老版本注解配置转到2.5.7版本,请确保删除老的注解扫描配置,使用新的配置形式。
  • 在工程启动阶段,如遇到zk不可达,当前版本的行为是使用注册中心缓存继续启动(具体由check参数决定。
    MonitorService初次调用,如遇zk不可达,当前版本会忽略monitor数据上传,以避免阻塞rpc主流程。


    重点
  • 在 2.5.7 版本更新的同时还给出了下一步的预告,近期即将提供 dubbo-spring-boot-starter 启动配置模块。

    这个提示说明了两个事情:

  • Dubbo 还会继续完善,后续会开发很多的新的功能,所以希望大家关注。
  • 说明 Spring Boot 的影响力也越来越大,各种牛逼的开源软件纷纷给出了支持,现在也将包括 Dubbo。

    Dubbo 下一步会做什么?

     

  • 1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • 云计算之路-阿里云上-新车限行:新购服务器无法访问任何远程25端口 - 博客园团队

      云计算之路-阿里云上-新车限行:新购服务器无法访问任何远程25端口 -

      2017-09-01 15:03

    • 云计算之路-阿里云上:弹性伸缩无服务器可弹,已有服务器无兵可援 - 博客园团队

      云计算之路-阿里云上:弹性伸缩无服务器可弹,已有服务器无兵可援 -

      2017-07-22 10:03

    • 云计算之路-阿里云上:14:20-14:55博客后台2台服务器都CPU 100%引发的故障 - 博客园团队

      云计算之路-阿里云上:14:20-14:55博客后台2台服务器都CPU 100%引发

      2017-06-10 10:01

    • 云计算之路-阿里云上:攻击火上浇油,与云盾玩起了踢皮球 - 博客园团队

      云计算之路-阿里云上:攻击火上浇油,与云盾玩起了踢皮球 - 博客园团

      2017-05-22 18:04

    网友点评
    r