Releases: apache/dubbo
dubbo-3.0.6
3.0.6 continue to focus on stability improvement of Dubbo3, with changes mainly related to service discovery, triple protocol, and bugs reported from the community users. Please check milestone 3.0.6 for more details.
Bugfixes
- Fix async provider with embedded RPC call cannot write the result back successfully. #9704
- Fix QoS endpoint /ready and /startup does not work well. #9634
- Fix Spring bean cannot be registered into SPI instance. #8792
- Fix undetermined execution order of callbacks registered to ResponseFuture. #9461
- Fix multiple metadata reporter support. #9322
Enhancements
- Service Discovery model
- Triple protocol
- JDK 17 support
- Support send.reconnect configurable #9195
Reported Curator5 compatibility issue about this version #9750
dubbo-3.0.5
This release focuses on stability improvement of Dubbo3, highlights resilience, performance, triple, service discovery and some other important bugfixes. See milestone 3.0.5 for more details.
Bugfixes
- Fix bugs of some registry extensions, including Nacos and Zookeeper.
- Fix bugs reported in the process of Dubbo3 initialization and shutdown
- Fix Async RPC related bugs, including context recovery on thread switch and callback disorder.
- Fix service discovery(application-level ) issues
Enhancements
- Resilience improvement
- Empty address notification protection.
- Automatic blacklist of unhealthy nodes/addresses.
- Enhancement of Triple protocol
- Performance tuning, reduce memory allocation
Vulnerabilities
- Upgrade Log4j to 2.17.0 , see #9380 for details
dubbo-2.7.15
Bugfix
- dubbo-spring-boot-actuator compatible with Spring Boot Actuator 2.6.x
- Check before use to avoid possible NPE in MetadataInfo
- Fix DubboConfigEarlyInitializationPostProcessor registered twice in Spring Framework
- Fix issue where dead connections would not be reconnected
- Fix netty server ssl context file leak
- Fix potential NPE in URLBuilder.java
- Make the warm-up process smoother
- Reset the client value of LazyConnectExchangeClient after close
- Fix StringIndexOutOfBoundsException at addParam
- Change default step to FORCE_INTERFACE
Dependency Upgrade
- Upgrade log4j2 version: 2.11.1 -> 2.17.0
- Upgrade Hessian Lite version: 3.2.11 -> 3.2.12
- Upgrade to jedis: 3.6.0 -> 3.7.0
- Upgrade jetcd: 0.5.3 -> 0.5.7
- Upgrade xstream version: 1.4.10 -> 1.4.12
- Upgrade curator version: 4.0.1 -> 4.2.0
dubbo-2.6.12
What's Changed
- [2.6] update hessian lite version: 3.2.11 -> 3.2.12 (#9455)
dubbo-3.0.4
🌟Features
- Add Logger Disabled Option(#8885)
- Support start module in background(#8869)
- Support Multi Subscribe for Service Discovery(#8908)
- Support native for dubbo 3.0.4(#8966)
- Support streamObserver cancel(#8946)
- Triple transmission supports message compression(#8817、#9018、#9021、#9032)
- Support Cache Properties in model field(#9025)
- Support run dubbo native projects with maven plugin(#8970)
- Add onlyExtensionClassLoaderPackages support for ExtensionLoader(#9061)
🐞 BugFixs
- Fix appendAttribute key(#8847)
- Fix RpcContext duplicated override(#8842)
- Fix StringIndexOutOfBoundsException at addParam()(#8799)
- Add invocation null check at decode(Channel, InputStream)(#8812)
- Fix destroy IllegalStateException and doOverrideIfNecessary NPE(#8768)
- Add zookeeper node data created event check(#8833)
- Fix:When using multiple protocols and having port specified, service can not be started.(#8769)
- Fix urlInvokerMap concurrent access issue(#8701)
- Fix Deployer State for delay injected bean(#8867)
- ZookeeperRegistry CountDownLatch should be release and add some UT (#8870)
- Fix serialVersionUID(#8852)
- Fix concurrent bean creation error(#8883)
- Recover Servlet Page API(#8884)
- Fix CountDownLatch not being released(#8878)
- Fix when subscribing, the check configuration section is unavailable(#8879)
- Fix Class.forName when publish ServiceDefinition(#8894)
- Socks proxy filtering local address(#8876)
- Fix delay export not work for ServiceConfig(#8912)
- Fix MergeableClusterInvoker NPE(#8891)
- Add destroy() calling to close tomcat server port(#8920)
- Set client to null at LazyConnectExchangeClient close methods(#8881)
- Fix: registry cast to AbstractRegistry error in telnet(#8619)
- Fix the AbstractServiceDiscovery#serviceInstance attribute without adding volatile modifier(#8915)
- Fix State Router Throw Exception when Address is Empty(#8951)
- Reset ServiceModel in Injvm Invoke(#8952)
- Fix instance mode mesh route can't get url parameters(#8947)
- Fix exception info(#8974)
- Method for judging whether it is jdk for kryo serialization recovery(#8968)
- Fix duplicated ApplicationConfig error(#8989)
- Override removeFailedRegisteredTask and removeFailedSubscribedTask for testRecover()(#8981)
- Fix ConfigManagerTest spelling-mistake(#8990)
- Fix Concurrent issue when creating SPIs' Adaptive class (#8998)
- Fix Listener early initialization(#9006)
- Check ClosedChannelException at close operation(#9010)
- Correct arguments type of NotifyService callback methods(#9008)
- Set module started at applicationDeployer checkStarted()(#9013)
- Fix Migration Report for Multi-instances (#9020)
- Fix NPE in get configuration(#9024)
- Add logic for check localMetadataService.blockUntilUpdated stat(#9002)
- check applicationModel destroy state at blockUntilUpdated(#9001)
- Remove the default implementation of the RegistryFactory extension point(#9027)
- Fix instance update failed (#9040)
- Fix process can't stop when tomcat port already in use(#8552)
🚀Optimization
- Add ScopeModel to Local Invoke (#8849)
- Fix optimization field scope(#8751)
- Optimize some code of the dubbo metadata module(#8783)
- Do not show the warning at first replaceWithLazyClient()(#8814)
- Unify error message(#8794)
- Extract constants of MigrationRule(#8850)
- Improve the logic of MigrationRuleListener#destroy method(#8853)
- Add ClassLoaderResourceLoader to cache ClassLoader's resources(#8866)
- close stream when timeout(#8888)
- Optimize some UnitTest case cost time sharply(#8844)
- Improve unit test efficiency(#8877)
- TimeoutCheckTask should be cancelled when DefaultFuture has been cancelled(#8898)
- Remove meaningless code(#8887)
- Try Load Class from interface parameter(#8905)
- Add ModuleModel Qualifier for SpringBean Initializer(#8904)
- Convert TimeoutException when invoke timeout(#8906)
- Refactor MetricsConfig(#8785)
- TimeoutCheckTask should be cancelled when DefaultFuture2 has been cancel(#8901)
- Add handler for reset frame(#8871)
- Optimize triple server send frame error handler(#8922)
- Optimize Multiple some code(#8900)
- MultipleRegistry remove duplicate URL(#8896)
- An optimization of generic invocation in gson format(#8924)
- Catch handler.caught() throwable of MultiMessageHandler(#8930)
- Refactor Injvm invoke(#8926)
- Revert LinkedHashMap in Invocation to HashMap(#8941)
- Destroy executor and improve tests(#8928)
- Remove SimpleChannelInboundHandler(#8893)
- Improve consistent hashing load balancing with a new algorithm(#8948)
- Add latch waiting for registration finished(#8962)
- Remove unused client handler(#8955)
- Ignore Generic Invoke for Injvm invocation copy(#8986)
- Inject applicationModel into TripleHttp2Protocol by ScopeModelAware(#8984)
- Optimize for AbstractRegistry(#8971)
- Change local invokers from Collections.singletonList to ArrayList(#8997)
- Add serializingExecutor(#8999)
- No need to estimate header size before send and remove the logic(#8802)
- Add health service cancel handler(#9004)
- Remove connections config of method level (#9011)
- Extract constants and fix typo(#9019)
- Use future to replace latch(#9030)
- Support deep copy of default service instance(#9029)
- Add issues template(#9036)
- Rebuild InstanceAddressURL to ServiceConfigURL for LazyConnectExchangeClient(#9041)
- Fill ListBoolMatch code and optimize code for DubboAttachmentMatch(#8448)
- Format triple(#9058)
- Manage global resources and executor services, fix zk client connections(#9033)
- Add Deprecated description(#9065)
🚀Stability improvement
- Add [annotation] test case for ServiceDefinitionBuilderTest & remove unused parameter(#8788)
- Add unit test for MetadataReportInstance and AbstractServiceNameMapping(#8846)
- Enhance FailoverClusterInvoker unit test (#8851)
- Enhance FailbackClusterInvoker unit test(#8861)
- Enhance FailfastClusterInvokerTest unit test(#8864)
- Enhance ForkingClusterInvoker unit test(#8865)
- Add test case for ZookeeperMetadataReportTest(#8840)
- Add test case for ServiceInstanceMetadataUtilsTest(#8914)
- Add unit test for CuratorFrameworkUtils and AbstractServiceDiscoveryFactory(#8886)
- Fix testInvoke_retryTimes_withBizException(#8910)
- Add unit test for StandardMetadataServiceURLBuilder(#8913)
- Add some AvailableClusterInvoker unit test(#8934)
- Add unit test and some optimizations(#8945)
- Patch shutdown hook test(#8958)
- Enhance mergeable cluster invoker test(#8889)
- Verify remote reference for remote url(#8973)
- Configure tri extension for MultiplexProtocolConnectionManagerTest(#8979)
- Add unit test for Http2ProtocolDetector and NettyEventLoopFactory(#9023)
- Fix AbstractMetadataReportTest and AbstractMetadataReportFactoryTest(#8807)
- Add unit test for ChannelBuffers and ChannelBufferFactory(#9031)
- Add unit test for dubbo-registry-nacos(#9035)
🔨Dependency Changes
- Upgrade curator version:4.1.0 -> 4.2.0(#8994)
dubbo-3.0.3
Features
- Support attachment when triple's resopnse is an exception(#8488)
- Extract DubboSpringInitializer and support customize initialization(#8495)
- Support triple server stream(#8542)
- Enhance and fix check config(#8483)
- Dubbo compiler support stream(#8566)
- Support ignored Network Interfaces(#8616)
- Support triple void response(#8608)
- Add tri inner health service(#8644)
- Multi Instance Support(#8662,#8669,#8684,#8717,#8728,#8736,#8737,#8766,#8779,#8789,#8786,#8810,#8818,#8819,#8825,#8823,#8829,#8831,#8824,#8835,#8832)
- Supported to configure HTTP2 settings(#8700)
BugFixs
- Avoid that resources are not released during calling destroy(#8459)
- Fix when using triple protocol unavailable returns real exception(#8458)
- Triple:Remove auto wrap when attachment is an object instance (#8473)
- Solve the problem of address delivery in service discovery scenarios(#8492)
- Fix address in used error of port 2181(#8466)
- Fix broadcast log format bug(#8484)
- Fix TLS using scheme HTTP when using TRI protocol(#8497)
- Fix some comments(#8526)
- Fix class cast error and add unit test for ZoneAwareClusterInvoker(#8503)
- Fix nacos group inviable in consumer side(#8533)
- Fix NPE on serialization checking when request timed out(#8547)
- Compact with dubbo-all without farbic-io(#8546)
- Fix bug of BroadcastClusterInvoker and add test cases(#8532)
- Fix MetadataService connections leak (#8555)
- Fix mock:true configuration(#8558)
- Fix duplicate config init(#8578)
- Ignore non-dubbo nacos services(#8573)
- Fix error in filters can not be returned to client(#8615)
- Bump compiler version to 0.0.3 release(#8687)
- Fix client can not recognize trailers only(#8664)
- Fix random assertion failure(#8703)
- Fix tri stream method can not find methodDescriptor(#8705)
- Fix the consumerModel's NPE in TripleClientHandler(#8734)
- Fix ignored interface name matches method (#8723)
- Fix consumer and provider have same tag, but no provider found(#8763)
- Fix Triple Classloader & Add backward of ServiceMetadata(#8800)
- Fix DubboProtocol state & Fix NPE when destroy(#8809)
- Fix consumer using URL direct connection can not get ServerContext(#8757)
- Fix Javaassist ClassPool ClassPath(#8828)
- Fix nacos admin protocol cant't get interface name(#8782)
Optimization
- Optimize tri header constant & avoid tri header in attachments(#8481)
- Triple:Optimize connection & remove executor(#8486)
- Compact with some registry without address(#8496)
- Change Service Info revision cal structure(#8478)
- Optmization about shortestResponseLoadBalance(#8441,#8519)
- Optimize dubbo monitor configuration(#8477,#8549)
- Refactor reference config(#8455)
- Fix typo and some optimizations(#8499)
- Optimize the zookeeper timeout in all testcase(#8564)
- Ignore Exception when creating Reference (for generic call)(#8534)
- Add volatile modifier to some variables in ListenableRouter(#8579)
- Adjust the acquisition of the app, group, and version value of the url (#8582)
- Fix some bad smell of Service export & refer(#8594)
- Check if enable Remote Report Metadata before report app metadata info(#8597)
- Add Header Filter for Triple Protocol(#8585)
- Remove operation handler(#8637)
- Adjust the scope of the spi extension(#8600)
- Remove throwable tw-bin header and truncate exception (#8642)
- When use delay to export service, catch the exception and log it.(#8584)
- Optimize: example add Triple protocol Demo(#8643)
- Add gen MethodDescriptor valid, avoid strange situations(#8651)
- Add ApplicationModel destroy support and ut support(#8673)
- Catch some harmless exception(#8663)
- OnError in executor(#8668)
- Add Serialization warning message to java serialization(#8716)
- Add preferredProtocol fallback strategy(#8699)
- Resource clean before destroy or stop(#8636)
- Judge whether success or not by user's perspective in interface-appName mapping(#8721)
- Simplify and unify local address getting method(#8677)
- Only unsubscribe not null listener in RegistryProtocol.unexport(#8682)
- Remove TripleRpcException(#8712)
- Remove similar code(#8671)
- Add log output when notify error(#8729)
- Add ConsumerUrl adapt to ServiceAddressURL(#8731)
- Remove duplicate catch block (#8750)
- Failed retries of failback should be judged first (#8719)
- Caculate capacity in the default constructor of InternalThreadLocalMap(#8697)
- DefaultFuture turn off logging optimization for Channel(#8775)
- Close client immediately when destroy unused invoker(#8755)
- Inefficient Usages of Java Collections (#8784)
- Use promise catch server send big header exception(#8774)
- Refactor AbstractRegistryFactory (exact static field) (#8808)
Dependency Changes
- Upgrade curator version:5.0.0 -> 5.1.0
- Upgrade nacos : 2.0.2 -> 2.0.3
Compatibility
- Compatible with spring 3.2.x(#8430)
Stability improvement
- Add unit test for VirtualServiceRule(#8428)
- Ignore unnecessary exception stack trace in testcase (#8420)
- Clear shared state pollution to avoid flaky tests in class ExtensionLoaderTest(#8467)
- Make ServiceConfigTest#testDelayExport more reasonable(#8471)
- Verify service-discovery-registry protocol in multiple registry center (#8493)
- Verify the process of exported provider in single registry center (#8501)
- Improve annotation parameters test(#8535)
- Verify additional configuration during service reference(#8543)
- Add test cases to the Configurator after version 2.7(#8560)
- Fix: disable testcase of ConfigTest#testReferGenericExport (#8580)
- Verify the mapping between exported provider and metadata(#8510)
- Add testcase for checking exported metadata service in single registry center(#8583)
- Verify local reference for the creation of a local invoker process(#8592)
- Add unit test for MockInvokersSelector(#8593)
- Test: Add testcase to check exported service in multiple registry center(#8598)
- Fix ut after disable default metadata report(#8618)
- Add test case for service discovery process(#8607)
- Add bootstrap test(#8639)
- Verify remote refer for registry(#8645)
- Test: Support checking metadata service in multiple registry center(#8606)
- Try to reduce the time consuming in UT(#8686)
- Verify multi-instance method callback (#8670)
- Enhance ExtensionLoaderTest(#8646)
- UT: refer metadata service(#8761)
- Test: Upgrade the version for UT in dubbo-config-spring(#8759)
- UT:refer for multiple registry(#8760)
- Add test case for InMemoryMetadataServiceTest(#8753)
- Add unit test for Base[Service/Application]MetadataIdentifier(#8767)
dubbo-2.7.14
Change Lists
- add Dynamic Configuration Override Support For ServiceDiscovery. (#8389)
- fix mock parameters doesn't work when it contain ':' or '='. (#8379)
- fix the issue of taking the zone parameter value in ZoneAwareClusterInvoker. (#8521)
- add the switch for check class is in serialize white list , default is true. (#8537)
- fix NPE on serialization checking when request timed out. (#8587)
- fix NetUtils.ignoreNetworkInterface can't process network card name contains '(' symbol. (#8629)
- unify the way of getting local address. (#8679)
- fix retries param didn't work well when it is 0. (#8743)
- close client immediately when destroy unused invoker. (#8756)
- fix destroy IllegalStateException and doOverrideIfNecessary NPE. (#8683)
- show message according to log level when DefaultFuture.closeChannel. (#8778)
- use MapUtils instead of AttachmentsAdapter. (#8772)
Dependency Changes
- netty4: 4.1.51.Final -> 4.1.66.Final
- netty4_ssl: 2.0.39.Final -> 2.0.40.Final
- http_client: 4.5.3 -> 4.5.13
- jetty: 9.4.11.v20180605 -> 9.4.43.v20210629
- apollo_client: 1.1.1 -> 1.8.0
- tomcat_embed: 8.5.31-> 9.0.48
- commons_io: 2.6 -> 2.7
- curator: 5.0.0 -> 5.1.0
- hessian_lite: 3.2.8 -> 3.2.11
dubbo-2.6.11
Change Lists
- Add serialize id check for 2.6 (#7912)
- [dubbo2.6] cherry up #7815 to dubbo2.6 (#7992)
- Dubbo 2.6.x may not support multi group consumer (#7997)
- Service annotation #parameters on issue#3072 (#8002)
- Remove needless toString convert (#8093)
- Backport 2.7, lazy connection warn log (#8329)
- backport hessian protocol change from 2.7 (#8432)
- Dubbo ProviderConsumerRegTable class cause outOfMemory while no provider available exception occurs (#8522)
- fix issue-8516 on 2.6.x (#8623)
- [2.6] update hessian lite version (#8781)
dubbo-3.0.2.1
dubbo-3.0.2
Features
- improve generic service with @DubboService annotation. (#8174)
- metadata report config support xml to config protocol and port. (#8269)
- compatible for curator5. (#8263)
- p2p invoke support wildcard url match. (#8247)
- add Dynamic Configuration Override Support For ServiceDiscovery. (#8300)
- add provider configuration override disable option. (#8314)
- support native image. (#8234)
- support disable shutdown hook. (#8369)
- add Kubernetes Mesh Rule support. (#8350)
- support SSL at netty transport. (#8116)
BugFixs
- fix re-start override dynamic config. (#8190)
- fix delete configurators does not take effect. (#8191)
- fix triple protocol will throw exception when the service is exposed. (#8126)
- fix ConfigCenterConfig.setAddress will override username problem. (#8242)
- fix DefaultFuture.closeChannel will shutdown ExecutorService. (#8189)
- fix TripleClientHandler#writeRequest throwing NPE problem. (#8265)
- fix NPE when parse migration rule error happen. (#8280)
- fix Activated Extensions order. (#8248)
- fix URLAddress#parse method to judge the isPathAddress problem when the address is ipv6. (#8286)
- fix custom parameter in configuration properties does not work. (#8308)
- fix Config id Override when both using API and Spring. (#8321)
- fix service discovery not work on bootstrap & fix address pollution. (#8315)
- fix nacos registry can't received instance change notify. (#8345)
- fix could not resolve placeholder '${dubbo.application}' in xml. (#8368)
- fix service parameter fetch order. (#8385)
- fix error of register dubbo bootstrap application listener manually. (#8410)
- fix mock parameters doesn't work when it contain ':' or '='. (#8414)
- fix delete mesh rule npe. (#8435)
Optimization
- add exception catch for RemovalTask, ensure semaphore release. (#8170)
- check duplicated ReferenceConfig/ServiceConfig by unique service name. (#8198)
- improve the performance for generating random numbers. (#8167)
- if user define interface service discovery, not publish service name mapping info. (#8179)
- use StringBuilder#append(Char) to improve performance. (#8169)
- gRPC Compile class interface order. (#8200)
- improve property placeholder resolving of reference bean. (#8187)
- use CompletableFuture#get(long, TimeUnit) to take place of CompletableFuture#get() in MergeableClusterInvoker. (#8223)
- service delay export config ignore metadata service. (#8243)
- improve dubbo config beans and bootstrap initialization. (#8168)
- improve duplicated config checking and add tests for reference annotation. (#8253)
- replace with ring for registry notification & suppress property checker. (#8282)
- improve dynamic configuration initialization. (#8294)
- lock-free ConfigManager and improve config checking. (#8289)
- modify metadata equals and instance listener. (#8275)
- improve async export / refer. (#8186)
- use TreeSet to ensure ServiceNames order when subscribe. (#8326)
- make first tenth calls notify not delay RegistryNotifier. (#8337)
- refactor compiler to generate new format stubs. (#8343)
- change mesh rule group to config default value. (#8330)
- compatible with nacos grouping via group. (#8320)
- remove runtime params in ServiceInfo . (#8376)
- throw RpcException when NacosException occurred. (#8382)
- configcenter ban accessLogKey and FileRouterFactory key. (#8388)
- improve config bean initialization compatible with spring 3.x/4.1.x. (#8407)
- dubbo bootstrap start re-entry, export/refer new services. (#8409)
- org.apache.dubbo.* add serialization whitelist. (#8423)
- ensure generated config id is unique, checking existed config. (#8322)
- compatible with filed change declaration override for Javaassist. (#8434)
- refactor Codec check, default deny. (#8449)
- compatible with adaptive extensions when ApplicationModel is null. (#8454)
Code Improvement
Thanks for these contribution to improve stability of Apache Dubbo.
#8111,#8147,#8164,#8177,#8180,#8161,#8183,#8205,#8215,#8173,#8219,#8228,#8232,#8230.#8236,#8260,#8262,#8252,#8246,#8208,#8278,#8267,#8277,#8291,#8296,#8302,#8175,#8319,#8309,#8336,#8332,#8328,#8355,#8396,#8401,#8395,#8415,#8406,#8411,#8418,#8439,#8404,#8443
Dependency Changes
#8351:
- remove dependency: org.eclipse.collections:eclipse-collections
- remove dependency: com.google.guava:guava
- jetty: 9.4.11.v20180605 -> 9.4.43.v20210629
- apollo client: 1.1.1 -> 1.8.0
- snakeyaml: 1.20 -> 1.29
- tomcat embed: 8.5.31 -> 8.5.69
- nacos client: 2.0.0 -> 2.0.2
- swagger: 1.5.19 -> 1.5.24
#8386, #8452:
- hessian_lite: 3.2.8 -> 3.2.11