Dubbo v2.7.1 Release Notes

Release Date: 2019-03-26 // about 5 years ago
  • Warning: According to reports from the community, be aware of possible Service Discovery problems in certain circumstances. Check #4213 for details.
    风险提示:升级到2.7.1版本后,注册中心(多数是zookeeper)在某些特殊场景下会出现重复URL地址数据无法删除,导致消费方拿到的是失效地址,从而导致调用失败的问题,2.7.2版本里面会修复此问题,预计6月初发布。详细原因请参考#4213

    🔔 Notice

    🚚 'zkclient' extension for 'org.apache.dubbo.remoting.zookeeper.ZookeeperTransporter' is removed from Dubbo 2.7.1, and 'curator' extension becomes the default extension. If you happen to config your application to use 'zkclient' explicitly, pls. switch to use 'curator' instead.

    🆕 New Features

    • 👍 service register support on nacos #3582
    • 👌 support consul as registry center, config center and metadata center #983
    • 👍 service registry support/config center support on etcd #808
    • 👍 metrics support in dubbo 2.7.1 #3598
    • 👍 @argument @method support #2405

    ✨ Enhancement

    • [Enhancement] @EnableDubboConfigBinding annotates @repeatable #1770
    • 0️⃣ [Enhancement] Change the default behavior of @EnableDubboConfig.multiple() #3193
    • Should make annotation easier to use in multiple items circumstance #3039
    • ⬆️ NoSuchMethodError are thrown when add custom Filter using dubbo2.6.5 and JDK1.6 and upgrade to dubbo2.7.0 #3570
    • introduce dubbo-dependencies-zookeeper #3607
    • Zookeeper ConfigCenter reuse the client abstraction and connection session #3288
    • [Survey] Is it necessary to continue to maintain zkclient in dubbo project? #3569
    • Start to use IdleStateHandler in Netty4 #3341
    • 👌 Support multiple shared links #2457
    • ⚡️ Optimize heartbeat #3299
    • AccessLogFilter simple date format reduce instance creation #3026
    • 👌 Support wildcard ip for tag router rule. #3289
    • ScriptRouter should cache CompiledScript #390
    • ⚡️ Optimize compareTo in Router to guarantee consistent behaviour. #3302
    • 👍 RMI protocol doesn't support generic invocation #2779
    • ✨ a more elegant way to enhance HashedWheelTimer #3567
    • obtain local address incorrectly sometimes in dubbo #538
    • implement pull request #3412 on master branch #3418
    • ✨ enhancement for event of response (follow up for pull request #3043) #3244
    • ⬆️ bump up hessian-lite version #3423 #3513
    • [Dubbo-3610]make snakeyaml transitive, should we do this? #3659

    🛠 Bugfixes

    • cannot register REST service in 2.7 due to the changes in RestProtoco#getContextPath #3445
    • Conflict between curator client and dubbo #3574
    • is there a problem in NettyBackedChannelBuffer.setBytes(...)? #2619
    • [Dubbo - client always reconnect offline provider] Dubbo client bug #3158
    • 🛠 fix heartbeat internal #3579
    • logic issue in RedisRegistry leads to services cannot be discovered. #3291
    • Multicast demo fails with message "Can't assign requested address" #2423
    • 🛠 Fix thrift protocol, use path to locate exporter. #3331
    • 🔧 cannot use override to modify provider's configuration when hessian protocol is used #900
    • Condition is not properly used ? #1917
    • 👀 connectionMonitor in RestProtocol seems not work #3237
    • 📜 fail to parse config text with white space #3367
    • @reference check=false doesn't take effect #195
    • 🔧 [Issue] SpringStatusChecker execute errors on non-XML Spring configuration #3615
    • monitor's cluster config is set to failsafe and set to failsafe only #274
    • A question for ReferenceConfigCache. #1293
    • referenceconfig#destroy never invoke unregister #3294
    • 🛠 Fix when qos is disable,log will print every time #3397
    • 👍 service group is not supported in generic direct invocation #3555
    • setOnreturn doesn't take effect in async generic invocation #208
    • 🛠 Fix timeout filter not work in async way #3174
    • java.lang.NumberFormatException: For input string: "" #3069
    • 🔧 NPE occurred when the configuration was deleted #3533
    • 📦 NPE when package of interface is empty #3556
    • NPE when exporting rest service using a given path. #3477
    • NullPointerException happened when using SpringContainer.getContext() #3476
    • 👻 Why does not tomcat throw an exception when server.start failed with a socket binding error. #3236
    • 📇 No such extension org.apache.dubbo.metadata.store.MetadataReportFactory by name redis #3514
    • dubbo 2.7.1-SNAPSHOT NoClassDefFoundError when use springboot #3426
    • NPE occurs when use @reference in junit in spring boot application #3429
    • When refer the same service with more than one @references(with different configs) on consumer side, only one take effect #1306
    • 👻 consumer always catch java.lang.reflect.UndeclaredThrowableException for the exception thrown from provider #3386
    • dubbo2.7.0 com.alibaba.com.caucho.hessian.io.HessianProtocolException: 'com.alibaba.dubbo.common.URL' could not be instantiated #3342
    • Close Resources Properly #3473
    • SPI entires dup by 3 times. #2842
    • provider gets wrong interface name from attachment when use generic invocation in 2.6.3 #2981
    • HashedWheelTimer's queue gets full #3449
    • 📇 Modify MetadataReportRetry ThreadName #3550
    • Keep interface key in the URL in simplify mode when it's different from path. #3478
    • nc is not stable in dubbo's bootstrap script #936