Dubbo 从 2.5.3 到 当下

从 2.5.3 到 当下

2012.10.23 2.5.3

2017.09.07 2.5.4
2017.09.12 2.5.5
2017.10.12 2.5.6
2017.11.04 2.5.7
2017.12.12 2.5.8

2018.01.08 2.6.0
2018.01.25 2.5.9
2018.03.14 2.5.10
2018.04.02 2.6.1
2018.06.07 2.6.2
2018.09.11 2.6.3
2018.10.08 2.6.4
2018.11.23 2.6.5
2019.02.28 2.6.6
2019.07.15 2.6.7

2019.01.29 2.7.0
2019.02.28 2.6.6
2019.03.26 2.7.1
2019.05.31 2.7.2
2019.07.19 2.7.3

资料

https://github.com/apache/dubbo

http://dubbo.apache.org/zh-cn/

https://dubbo.gitbooks.io/dubbo-user-book/content/

https://legacy.gitbook.com/@dubbo

https://github.com/apache/dubbo-admin

https://github.com/apache/dubbo-spring-boot-project

https://github.com/apache/dubbo-samples

https://github.com/alibaba/spring-cloud-alibaba

https://github.com/spring-cloud-incubator

https://github.com/spring-cloud

https://github.com/spring-projects/spring-boot

https://mercyblitz.github.io/2018/01/01/Dubbo-%E6%B3%A8%E8%A7%A3%E9%A9%B1%E5%8A%A8/

2.5.x 版本

2012.10.23 2.5.3

老版本

2017.09.07 2.5.4

问题修复
  1. 优雅关闭
  2. MonitorFilter 阻塞RPC流程
  3. 动态配置:无法指定消费端ip, 服务端配置无法删除.
  4. 路由规则解析问题
  5. 异步影响到下行RPC调用.
  6. 服务端流控优化.
  7. 社区提交的一些问题的修复.
    详情请见 问题列表
依赖升级
依赖当前目标影响
spring3.2.16.RELEASE4.3.10.RELEASEschema parse;Http RPC
zookeeper3.3.33.4.9registry
zkclient0.10.10zookeeper client framework
curator1.1.162.12.0zookeeper client framework
commons-logging1.1.11.2Logger
hessian4.0.64.0.38hessian RPC
jedis2.1.02.9.0redis registry;redis RPC
httpclient4.1.24.5.3hessian uses http connection pool
validator1.0.01.1.0.Finaljava validation
cxf2.6.13.0.14webservice
jcache0.41.0.0jcache
优化
  1. 代码格式化
  2. 修改没有可用服务端时的客户端提示信息.

2017.09.12 2.5.5

  1. 兼容JDK1.6以及更高版本,2.5.4要求JDK1.8+.

2017.10.12 2.5.6

问题修复
  1. 修复 PojoUtils 问题: 枚举类型,私有成员.
  2. 在服务端线程池耗尽时,RejectException 无法被传到客户端.
  3. 在符合满载时,避免不必要的应答传输.
  4. Slf4jLogger 能够反映出真实的行号.
  5. 延迟暴露时,并发问题导致意外的多端口绑定
  6. 没有服务端时Mock不生效的问题.
  7. 一些优化:OverrideListener、停止服务端不必要的心跳、主启动流程, 等等
  8. 一些问题修复:动态配置无法删除,telent调用支持json参数、监控统计问题,等等
新特性支持
  1. 支持Netty4 手册
  2. 线程池满时的自动转储. 手册
  3. hessian2序列化支持Jdk 1.8 中新的 date-time 类型.

2017.11.04 2.5.7

发行说明
  1. 一个全新的注解配置实现,修复了旧注解版本报告的所有缺点。(dubbo-spring-boot-starter将在稍后发布);更多细节参考Dubbo Annotation-Driven
  2. 支持读取ip和端口以从环境变量注册和绑定。
  3. 调整一些XML配置项:dump.directory等。
  4. 无法连接注册表时阻止Bootstrap。
  5. 当第一次调用 MonitorService 时,当无法连接 ZK 时,MonitorService 会阻止RPC进程。#672
  6. 不推荐使用标记内部JSON序列化,而是使用 fastjson 进行代替
  7. RMI协议支持附件传递。
  8. EnumSet 类型支持 hessian2 序列化。
  9. 修正了一些错误和优化。
重要说明

请注意以下不兼容性或警告,但不要担心,此版本对核心RPC进程没有影响。您只需添加依赖项或遵循配置规则即可避免所有潜在影响。

  • 如果您使用的是 AccesslogFilterTelnetMock ,请记住将fastjson添加为第三方依赖项。
  • 如果您已经在使用注解配置,我们强烈建议您升级到2.5.7,其中我们已经更改了注解的使用方式,并且还更改了实现。
  • 如果check = true且无法在启动阶段连接注册表,则仍可通过降级使用注册表缓存来成功启动项目。
  • 当 MonitorService 尚未就绪时,当前版本将丢弃监视器统计信息。

2017.12.12 2.5.8

发行说明
  1. Dubbo 编程模型增强。

修复了2.5.7中报告的一些错误。更多细节参考Dubbo Annotation-Driven

外部配置 EnableDubboEnableDubboBindings,也准备添加到Spring-Boot-Starter。更多细节请参阅Dubbo外部化配置

  1. 通过telnethttp方式提供更强大的OPS:在此版本中仅支持在线,离线,以下版本中将提供更多功能
  2. 默认情况下,路由规则不应每次都运行
  3. 调整春季活动表现
  4. 修复了使用 curator 时的 NPE 路径问题
  5. 修复了dubbo-admin报告的一些错误
  6. Redis注册表支持身份验证

2018.01.25 2.5.9

问题修复
  1. 向后兼容RMI协议 #911
  2. Hessian序列化:
    为java.util.Time类型添加null检查, #1118
    恢复 hessian 的覆盖序列化,子类的字段应该覆盖父类的覆盖,而不是相反,#932
  3. Redis和多播注册表无法脱机。
增强功能
  1. 注解增强,#1205。dubbo-spring-boot-starter也已根据此版本发布。
  2. qos 添加开关:dubbo.application.qos.enable = true/false。请注意我们配置qos的新方法,例如,dubbo.qos.port 已更改为 dubbo.application.qos.port。#1189
  3. 优雅关闭,在注册表取消注册和线程池关闭之间添加额外的等待时间。#1021
  4. 通过避免使用低效的 synchronized 来提高 hessian 序列化的性能。#1196
  5. 参数验证失败时避免重试。#1031
  6. 条件路由器还应检查默认值。#1204
漏洞补丁
  1. 在此版本中,我们将检查从网络接收的序列化ID(仅当id标识JDK序列化时)是否与当前实例中的序列化ID匹配。如果无法匹配,则拒绝反序列化过程。
    由于最初的JDK反序列化存在安全问题,因此我们这样做是为了防止意外篡改序列化类型,例如:从hessian2java

2018.03.14 2.5.10

问题修复
  1. FutureAdapter中的TimeUnit 转换失败问题, #1303.
  2. docker部署中,服务端调用服务失败的问题, #1289.
  3. Hessian序列化short 和 byte 类型时失败, #1232.
  4. 移除注册中心的 isdestrory() 检查, 保证关闭时的取消注册生效, #1313
  5. 引用注解支持注解类型

2.6.x 版本

2018.01.08 2.6.0

发行说明

在这个版本中,我们主要合并了dangdang贡献的dubbox分支,突出了以下功能(另见#1001):

  • REST支持(通过集成resteasy)
  • 高性能序列化框架:kryo,FST
  • 嵌入式tomcat支持

我们尝试保留原始分支,同时进行以下小调整:

  • 升级了一些依赖项的版本:kryo,FST和tomcat
  • 删除了对核心RPC协议的更改以避免兼容问题
重要说明
  • 依赖

由于此版本中的所有新功能都是可选的,因此添加到此版本的依赖项不具有传递性,因此您在使用新版本时不必担心引入任何依赖性问题。这反过来意味着每当您决定使用此版本中的任何新功能时,您必须向项目添加必要的依赖项。

2018.04.02 2.6.1

重构
  1. 将dubbo-admin, dubbo-monitor 等OPS模块剥离到一个单独的工程仓库中, #1209.
  2. 重构工程依赖和包结构: 序列化作为一个单独的模块,所有的子模块可以单独部署到远程仓库中, #1322.
功能增强 & 问题修复
  1. 支持在java 9中的构建, #1283.
  2. 避免在高并发场景中,hessian序列化的阻塞问题, #1196.
  3. 将默认的ZK客户端替换为 “curator”, #1186.
  4. 在参数校验失败时避免重试, #1031.
  5. 在spring bean销毁流程中去除dubbo销毁逻辑.
  6. 增加 “oninvoke” 解析, #1353.
  7. 其它问题修复.

2018.06.07 2.6.2

  1. Hessian-lite 序列化: 兼容性考虑,恢复了前一版本中修改的locale序列化, #1413
  2. 资产转移至Apache软件基金会,包括pom,license,免责声明等等, #1491
  3. 引入新的dispatcher策略: EagerThreadpool, #1568
  4. 监控数据按照组别和版本号分离, #1407
  5. Spring Boot 增强, #1611
  6. 优雅关闭功能增强
    移除 AnnotationBean 中的出口销毁逻辑.
    通过检查通道状态在客户端等待注册中心通知.
  7. 简化RpcContext中的消费端/服务端检查, #1444.

2018.09.11 2.6.3

功能增强/新特性
  1. 支持从服务端到客户端的隐式attachments传递, #889
  2. 支持根据bean类型将spring bean注入SPI, #1837
  3. 增加对http&hessian协议的泛化调用和attachments支持, #1827
  4. 通过增加泛化调用的真实方法名获取来支持一致性哈希, #1872
  5. 移除消费者端的服务端校验key, #1386
  6. 引入 Bootstrap 作为Dubbo启动和资源销毁的统一入口, #1665
  7. Netty 3中打开TCP_NODELAY, #1746
  8. 优雅下线优化(统一Servlet和Spring的生命周期), #1820, #2126
  9. 增加消费者端的线程池支持, #2013
  10. 在服务端增加特定的代理类型, #1873
  11. 支持redis中的dbindex, #1831
  12. 升级tomcat到8.5.31, #1781
问题修复
  1. ExecutionDispatcher 行为符合文档描述用户文档, #1089
  2. 移除Netty日志环境中,Dubbo自定义日志的副作用, #1717
  3. 修复 isShutdown() 判断在Dubbo业务线程池中总是返回true的问题, #1426
  4. 在只有两个节点的临界条件下,invoker节点选择的问题, #1759
  5. 使用ZK作为注册中心时,监听器在取消订阅过程中无法被移除的问题, #1792
  6. URL中包含用户定义的’@'时的解析问题, #1808
  7. CacheFilter中的空值检查来避免空指针问题, #1828
  8. 修复DUbboProtocol中潜在的死锁问题, #1836
  9. 修复在Dubbo内建重试机制触发时,RpcContext中的attachment没有被更新的问题, #1453
性能调优
  1. ChannelState中的分支预测优化. #1643
  2. 优化AtomicPositiveInteger, 减少内存和计算消耗, #348
  3. 引入内建的Threadlocal 来替代JDK的实现, #1745
Hessian-lite
  1. Hessian反序列化优化, #1705
  2. 支持 Locale 类型, #1761

2018.10.08 2.6.4

功能增强/新特性
  1. 支持通过密码访问Redis, #2146
  2. 在GenericService中支持char数组类型, #2137
  3. 在服务端异常时直接返回, #2451
  4. 增加qos启动失败时的错误日志,方便问题排查, #2455
  5. PojoUtil 增加对java.util.Date类型子类的支持, #2502
  6. 在MonitorService中增加IP和服务名, #2166
  7. 新的ASCII logo, #2402
问题修复
  1. 将客户端重试次数从0次改成2次, #2303
  2. 修复重试时attachment丢失的问题, #2024
  3. 修复telnet拿到空参数时的空指针问题, #2453
单元测试稳定性
  1. 通过更换端口,设置超时为3000ms来提高稳定性, #2501

2018.11.23 2.6.5

功能增强 / 新特性:
  1. 重构@service的BeanName的生成规则 #2235
  2. 为ServiceBean的导出引入新的Spring ApplicationEvent #2251
  3. [功能]在window系统下获取负载的方式优化 #1641
  4. 为dubbo-all增加javadoc #2600
  5. [功能]优化LeasActiveLoadBalance: 没有进行预热和修复历史bug #2540
  6. Round Robin的负载均衡优化 #2578 #2647
  7. 为sub-properties解决placeholders的bug #2297
  8. 增加SPI自动注入的开关,特别是泛化对象的注入。#2681
Bug修复:
  1. 解决@service(register=false)不能工作。 #2063
  2. 解决序列化id超出最大值的问题。 #1903
  3. 解决当高QPS的时候,消费端抛出了RpcException的问题。 #2016
  4. 增强@reference注解,针对不能支持导出同步异步的设置问题。 #2194
  5. 解决ReferenceAnnotationBeanPostProcessor#generateReferenceBeanCacheKey的一个bug。#2522
  6. 解决在2.6.x下Spring Event的bug。#2256
  7. 解决dubbo-serialization模块的不正确描述. #2665
  8. 解决打包source tgz包的时候,产生的一个空目录问题. #2560
  9. 解决2.6.x下doConnect的时候,没有使用getConnectTimeout获取超时时间的问题. #2622
  10. 解决@service不支持placeholder替换的问题. #1755

Issues and Pull Requests, check milestone-2.6.5.

2019.02.28 2.6.6

功能增强 / 新特性:
  1. 新增标签路由功能. #3065
  2. 升级默认Netty版本到Netty4. #3029
  3. kyro序列化时,支持JDK8中的Date/Time类型 #3519
  4. 支持在协议中配置telnet #3511
  5. MethodConfig和ArgumentConfig中增加注解驱动 #2603
  6. 增加对Nacos的支持 #3296
  7. @Rerefence中增加protocol属性 #3555
  8. @service 增加对多层接口的支持 #3251
  9. 改变@EnableDubboConfig.multiple()的默认行为 #3193
  10. 内联spring-context-support代码 #3192
  11. 简化Dubbo Protocol name的外部化配置 #3189
Bug修复:
  1. 升级hessian-lite到2.3.5, 修复不必要的类加载 #3538
  2. 修复客户端销毁时无法unregister的问题 #3502
  3. 过滤META-INF/dubbo/internal下配置文件重复的问题 #3315
  4. 修复高QPS的情况下,客户端在RegistryDirectory通知后抛出异常的问题 #2016
  5. 修复Spring boot中测试DUbbo服务,@reference 注解报空指针异常 #3429
  6. 修复provider 抛出的异常,consumer 捕获到的总是 java.lang.reflect.UndeclaredThrowableException #3386
  7. 修复DubboConfigConfigurationSelector 优先级过高的问题 #2897
  8. 修复@Rerefence#parameters()不工作的问题 #2301

2019.07.15 2.6.7

https://github.com/apache/dubbo/releases/tag/dubbo-2.6.7

2.7.x 版本

2019.01.29 2.7.0

环境要求:需要Java 8及以上版本支持

请在此处了解关于升级2.7.x版本的注意事项和兼容性问题

New Features
  1. 服务治理规则增强。

    • 更丰富的服务治理规则,新增应用级别条件路由Tag路由
    • 治理规则与注册中心解耦,增加对Apollo等第三方专业配置中心的支持,更易于扩展
    • 新增应用级别的动态配置规则
    • 规则体使用更易读、易用YAML格式
  2. 外部化配置。支持读取托管在远程的集中式配置中心的dubbo.properties,实现应用配置的集中式管控。

  3. 更精炼的注册中心URL,进一步减轻注册中心存储和同步压力,初步实现地址和配置的职责分离。

  4. 新增服务元数据中心,负责存储包括服务静态化配置、服务定义(如方法签名)等数据,默认提供Zookeeper, Redis支持。此功能也是OPS实现服务测试、Mock等治理能力的基础。

  5. 异步编程模式增强(限定于Dubbo协议)

  6. 新增Protobuf序列化协议扩展

  7. 新增ExpiringCache缓存策略扩展

Enhancements / Bugfixes
  1. 负载均衡策略优化,包括ConsitentHash(#2190) 、LeastActive(#2171)、Random(#2597) 、RoundRobin(#2586) (#2650)
  2. 升级第三方依赖:默认通信框架为netty 4、默认ZK客户端为Curator、Jetty 9
  3. 增加地址读取时对IPV6的支持(#2079)
  4. 性能优化,链接关闭的情况下使得Consumer快速返回 (#2185)
  5. 修复Jdk原生类型在kryo中的序列化问题 (#2178)
  6. 修复Provider端反序列化失败后,没有及早通知Consumer端的问题 (#1903)
升级与兼容性

此次版本发布我们遵循了保持和老版本兼容的原则,尤其是在保证与低版本互操作性的问题上,2.7.0版本是能做到完全兼容的。对于2.7.0的默认行为,最容易带来兼容性问题的此次发布版本内容中的package重命名,但这类问题是显示的,即能在升级后的编译期发现并予以解决。了解更多升级和兼容性注意事项。

2019.03.26 2.7.1

https://github.com/apache/dubbo/releases/tag/dubbo-2.7.1

2019.05.31 2.7.2

https://github.com/apache/dubbo/releases/tag/dubbo-2.7.2

2019.07.19 2.7.3

https://github.com/apache/dubbo/releases/tag/dubbo-2.7.3

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值