Skip to content

Releases: apache/dubbo

apache-dubbo-2.6.3

11 Sep 10:03
Compare
Choose a tag to compare

Enhancements / Features

  • Support implicit delivery of attachments from provider to consumer, #889
  • Support inject Spring bean to SPI by bean type, #1837
  • Add generic invoke and attachments support for http&hessian protocol, #1827
  • Get the real methodname to support consistenthash for generic invoke, #1872
  • Remove validation key from provider url on Consumer side, config depedently, #1386
  • Introducing the Bootstrap module as a unified entry for Dubbo startup and resource destruction, #1665
  • Open TCP_NODELAY on Netty 3, #1746
  • Graceful shutdown optimization (unified to the lifecycle to Servlet or Spring), #1820, #2126
  • Enable thread pool on Consumer side, #2013
  • Support specify proxy type on provide side, #1873
  • Support dbindex in redis, #1831
  • Upgrade tomcat to 8.5.31, #1781

Bugfixes

  • ExecutionDispatcher meet with user docs, #1089
  • Remove side effects of Dubbo custom loggers on Netty logger, #1717
  • Fix isShutdown() judge of Dubbo biz threadpool always return true, #1426
  • Selection of invoker node under the critical condition of only two nodes, #1759
  • Listener cann't be removed during unsubscribe when use ZK as registry, #1792
  • URL parsing problem when user filed contains '@', #1808
  • Check null in CacheFilter to avoid NPE, #1828
  • Fix potential deadlock in DubboProtocol, #1836
  • Restore the bug that attachment has not been updated in the RpcContext when the Dubbo built-in retry mechanism is triggered, #1453

Performance Tuning

  • ChannelState branch prediction optimization. #1643
  • Optimize AtomicPositiveInteger, less memory and compute cost, #348
  • Introduce embeded Threadlocal to replace the JDK implementation, #1745

Hessian-lite

  • Hessian deserialization optimization, #1705
  • Support Locale type, #1761

功能增强 / 新特性

  • 支持从服务端到客户端的隐式attachments传递, #889
  • 支持根据bean类型将spring bean注入SPI, #1837
  • 增加对http&hessian协议的泛化调用和attachments支持, #1827
  • 通过增加泛化调用的真实方法名获取来支持一致性哈希, #1872
  • 移除消费者端的服务端校验key, #1386
  • 引入 Bootstrap 作为Dubbo启动和资源销毁的统一入口, #1665
  • 在Netty 3中打开TCP_NODELAY, #1746
  • 优雅下线优化(统一Servlet和Spring的生命周期), #1820, #2126
  • 增加消费者端的线程池支持, #2013
  • 在服务端增加特定的代理类型, #1873
  • 支持redis中的dbindex, #1831
  • 升级tomcat到8.5.31, #1781

问题修复

  • ExecutionDispatcher 行为符合文档描述用户文档, #1089
  • 移除Netty日志环境中,Dubbo自定义日志的副作用, #1717
  • 修复 isShutdown() 判断在Dubbo业务线程池中总是返回true的问题, #1426
  • 在只有两个节点的临界条件下,invoker节点选择的问题, #1759
  • 使用ZK作为注册中心时,监听器在取消订阅过程中无法被移除的问题, #1792
  • URL中包含用户定义的'@'时的解析问题, #1808
  • CacheFilter中的空值检查来避免空指针问题, #1828
  • 修复DUbboProtocol中潜在的死锁问题, #1836
  • 修复在Dubbo内建重试机制触发时,RpcContext中的attachment没有被更新的问题, #1453

性能调优

  • ChannelState中的分支预测优化. #1643
  • 优化AtomicPositiveInteger, 减少内存和计算消耗, #348
  • 引入内建的Threadlocal 来替代JDK的实现, #1745

Hessian-lite

  • Hessian反序列化优化, #1705
  • 支持 Locale 类型, #1761

apache-dubbo-2.6.2

07 Jun 01:27
Compare
Choose a tag to compare
  1. Hessian-lite serialization: revert changes to locale serialization in previous release for compatibility, #1413
  2. Asset transfer to ASF, including pom, license, DISCLAIMER and so on, #1491
  3. Introduce new dispatcher policy: EagerThreadpool, #1568
  4. Separating monitor data with group and version, #1407
  5. Spring Boot Enhancenment, #1611
  6. Graceful shutdown enhancement
    • Remove exporter destroy logic in AnnotationBean.
    • Waiting for registry notification on consumer side by checking channel state.
  7. Simplify consumer/provider side check in RpcContext, #1444.

  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.

dubbo-2.6.1

02 Apr 03:13
Compare
Choose a tag to compare

Refactor

  • Stripping OPS modules such as dubbo-admin, dubbo-monitor, etc. to a separate repo, #1209.
  • Refactor project dependency and package structure: serialization as a standalone module, all submodules can deploy to remote repository separately, #1322.

Enhancements & Bugfixes

  • Support build in java 9, #1283.
  • Avoid blocking problems of hessian serailization in high concurrency scenarios, #1196.
  • Change default ZK client to "curator", #1186.
  • Avoid retry when parameter validation fails, #1031.
  • Remove dubbo destroy logic from spring bean destroy process.
  • Add "oninvoke" parse, #1353.
  • Other small bugs or polish.

重构

  • 将dubbo-admin, dubbo-monitor等OPS模块剥离到一个单独的工程仓库中, #1209.
  • 重构工程依赖和包结构: 序列化作为一个单独的模块,所有的子模块可以单独部署到远程仓库中, #1322.

功能增强 & 问题修复

  • 支持在java 9中的构建, #1283.
  • 避免在高并发场景中,hessian序列化的阻塞问题, #1196.
  • 将默认的ZK客户端替换为 "curator", #1186.
  • 在参数校验失败时避免重试, #1031.
  • 在spring bean销毁流程中去除dubbo销毁逻辑.
  • 增加 "oninvoke" 解析, #1353.
  • 其它问题修复.

dubbo-2.5.10

14 Mar 00:56
Compare
Choose a tag to compare

BugFixes

  • TimeUnit convert error in FutureAdapter, #1303.
  • Provider side failed to invoke service when deployed in docker, #1289.
  • Hessian serialization problem with types: short and byte, #1232.
  • Remove isdestrory() check in registry, make sure unregister works when shutdown, #1313
  • Reference annotation support annotate on annotation type

问题修复

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

dubbo-2.5.9

25 Jan 02:30
Compare
Choose a tag to compare

BugFixes

  • Backward compatible for RMI protocol #911
  • Hessian serialization:
    • Add null check for for java.util.Time type, #1118
    • Revert the override sequence of hessian, field of subclass should override that of parent class, not the other way around, #932
  • Redis and Multicast registry can not offline.

Enhancements

  • Annotation enhancement, #1205. The dubbo-spring-boot-starter has also been released based on this version.
  • Add switch for qos: dubbo.application.qos.enable=true/false. Notice the new way we configure qos, for example, dubbo.qos.port has been changed to dubbo.application.qos.port. #1189
  • Graceful shutdown, add extra waiting time between registry unregister and threadpool shutdown. #1021
  • Improve performance of hessian serialization by avoid usage of inefficient synchronized. #1196
  • Avoid retry when parameter validation fails. #1031
  • Condition router should also check default values. #1204

Vulnerability Patches

  • From this version, we will check if the serialization id received from network(only if the id identifies JDK serialization) matches with that in current instance. If it can't be matched, the deserialization process will be rejected. Since the original JDK deserialization has security problems, we do this to prevent unexpected tamper of serialization type, e.g. from hessian2 to java.

dubbo-2.6.0

08 Jan 03:32
Compare
Choose a tag to compare

Release Notes

In this release, we mainly merged the dubbox branch contributed by dangdang that highlights the following features (also see #1001):

  • REST support (by integrating resteasy)
  • High-performance serialization framework: kryo, FST
  • Embedded tomcat support

We tried to keep the original branch of the way, while making the following small adjustments:

  • Upgraded the versions of some dependencie: kryo, FST and tomcat
  • Removed the changes to core RPC protocol to avoid compatible problem

Important Notes

  • Dependencies
    As all new features in this version are optional, dependencies added to this version are not transitive, so you don't have to worry about introducing any dependency problem when using the new version. This in turn means you have to add the necessary dependencies to your project whenever you decide to use any new features in this release.

Dubbo-2.5.8

12 Dec 14:53
Compare
Choose a tag to compare

Release Notes

  1. Dubbo Programming Model enhancement.
  1. More powerful OPS through telnet and http: only support online, offline in this version, more functions will be provided in the following releases
  2. Route rule should not run every time by default
  3. Tuning spring event performance
  4. Fixed NPE path problem when using curator
  5. Fixed some bugs reported with dubbo-admin
  6. Redis registry support authentication

dubbo-2.5.7

04 Nov 08:20
Compare
Choose a tag to compare

Release notes

  1. A totally new annotation config implementation, fixed all drawbacks reported with the old annotation version. (dubbo-spring-boot-starter is going to be released later)
    * More details refer to Dubbo Annotation-Driven
  2. Support reading ip&port to register and bind from environment variables.
    example
  3. Adjust some XML config items: dump.directory, etc..
  4. Bootstrap blocked when registry can not be connected.
  5. MonitorService blocks RPC process when ZK can not be connected when MonitorService is invoked the first time. #672
  6. Mark internal JSON serialization deprecated, use fastjson instead.
  7. RMI protocol support attachments passing.
  8. EnumSet type support of hessian2 serialization.
  9. Fixed some bugs and optimization.

see Milestone-2.5.7 for details

Important notes

Please note the following incompatibilities or caveats, but don't worry, this release has no impact on core RPC process. You can avoid all the potential impacts by simply adding dependencies or following configuration rules.

  • If you are using AccesslogFilter, Telnet or Mock, remember add fastjson as a thirdpart dependency.
  • If you are already using annotation config, we strongly recommend you upgrade to 2.5.7, in which verion we have changed the way annotation is used, and also changed the implementation.
  • If check = true and registry can not be connected at start phase, the project can still be successfully started by degrading to use the registry cache.
  • Current version will discard the monitor statistics when MonitorService is not ready yet。

dubbo-2.5.6

12 Oct 02:16
Compare
Choose a tag to compare

Fixed issues

  1. Fixed PojoUtils problems: Enum Type, private fileds.
  2. RejectException can not be sent to the consumer side when provider threadpool is exhausted.
  3. Avoid the unnecessary response transfer when the payload is overload.
  4. Slf4jLogger can reflect the actual line number.
  5. Concurrency cause unexpected multi-port binding when using delay export
  6. Mock never work when there's no provider.
  7. Some optimization:OverrideListener、Stop unnecessary heartbeat on provider、Main bootstrap process, etc..
  8. Some bugfixs:dynamic configuration can not be deleted、telnet invoke support json arguments、monitor statistics problem, etc..

see Milestone-2.5.6 for details

New features

  1. Support for Netty4 manual
  2. Auto stack dump when thread pool exhausted. manual
  3. Jdk 1.8 new date-time types support for hessian2 serialization.

问题修复

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

详情请见 2.5.6里程碑

新特性支持

  1. 支持Netty4 手册
  2. 线程池满时的自动转储. 手册
  3. hessian2序列化支持Jdk 1.8 中新的 date-time 类型.

dubbo-2.5.5

12 Sep 05:14
Compare
Choose a tag to compare
  1. Compatible with JDK1.6 or higher, 2.5.4 requires 1.8+.

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