Apache Dubbo is a high-performance, java based, open source RPC framework.

Related tags

Networking dubbo
Overview

Apache Dubbo Project

Build Status codecov maven license Average time to resolve an issue Percentage of issues still open Tweet Gitter

Apache Dubbo is a high-performance, Java-based open-source RPC framework. Please visit official site for quick start and documentations, as well as the wiki for news, FAQ, and release notes.

We are now collecting Dubbo user info to help us to improve Dubbo further. Kindly support us by supplementing your information on issue#1012: Wanted: who's using dubbo, thanks :)

Architecture

Architecture

Features

  • Transparent interface based RPC
  • Intelligent load balancing
  • Automatic service registration and discovery
  • High extensibility
  • Runtime traffic routing
  • Visualized service governance

Getting started

The following code snippet comes from Dubbo Samples. You may clone the sample project and step into the dubbo-samples-api subdirectory before proceeding.

# git clone https://github.com/apache/dubbo-samples.git
# cd dubbo-samples/dubbo-samples-api

There's a README file under dubbo-samples-api directory. We recommend referencing the samples in that directory by following the below-mentioned instructions:

Maven dependency

<properties>
    <dubbo.version>2.7.9</dubbo.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo</artifactId>
        <version>${dubbo.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo-dependencies-zookeeper</artifactId>
        <version>${dubbo.version}</version>
        <type>pom</type>
    </dependency>
</dependencies>

Define service interfaces

package org.apache.dubbo.samples.api;

public interface GreetingsService {
    String sayHi(String name);
}

See api/GreetingsService.java on GitHub.

Implement service interface for the provider

package org.apache.dubbo.samples.provider;

import org.apache.dubbo.samples.api.GreetingsService;

public class GreetingsServiceImpl implements GreetingsService {
    @Override
    public String sayHi(String name) {
        return "hi, " + name;
    }
}

See provider/GreetingsServiceImpl.java on GitHub.

Start service provider

package org.apache.dubbo.samples.provider;


import org.apache.dubbo.config.ApplicationConfig;
import org.apache.dubbo.config.RegistryConfig;
import org.apache.dubbo.config.ServiceConfig;
import org.apache.dubbo.samples.api.GreetingsService;

import java.util.concurrent.CountDownLatch;

public class Application {
    private static String zookeeperHost = System.getProperty("zookeeper.address", "127.0.0.1");

    public static void main(String[] args) throws Exception {
        ServiceConfig<GreetingsService> service = new ServiceConfig<>();
        service.setApplication(new ApplicationConfig("first-dubbo-provider"));
        service.setRegistry(new RegistryConfig("zookeeper://" + zookeeperHost + ":2181"));
        service.setInterface(GreetingsService.class);
        service.setRef(new GreetingsServiceImpl());
        service.export();

        System.out.println("dubbo service started");
        new CountDownLatch(1).await();
    }
}

See provider/Application.java on GitHub.

Build and run the provider

# mvn clean package
# mvn -Djava.net.preferIPv4Stack=true -Dexec.mainClass=org.apache.dubbo.samples.provider.Application exec:java

Call remote service in the consumer

package org.apache.dubbo.samples.client;


import org.apache.dubbo.config.ApplicationConfig;
import org.apache.dubbo.config.ReferenceConfig;
import org.apache.dubbo.config.RegistryConfig;
import org.apache.dubbo.samples.api.GreetingsService;

public class Application {
    private static String zookeeperHost = System.getProperty("zookeeper.address", "127.0.0.1");

    public static void main(String[] args) {
        ReferenceConfig<GreetingsService> reference = new ReferenceConfig<>();
        reference.setApplication(new ApplicationConfig("first-dubbo-consumer"));
        reference.setRegistry(new RegistryConfig("zookeeper://" + zookeeperHost + ":2181"));
        reference.setInterface(GreetingsService.class);
        GreetingsService service = reference.get();
        String message = service.sayHi("dubbo");
        System.out.println(message);
    }
}

See consumer/Application.java on GitHub.

Build and run the consumer

# mvn clean package
# mvn -Djava.net.preferIPv4Stack=true -Dexec.mainClass=org.apache.dubbo.samples.client.Application exec:java

The consumer will print out hi, dubbo on the screen.

Next steps

Building

If you want to try out the cutting-edge features, you can build with the following commands. (Java 1.8 is needed to build the master branch)

  mvn clean install

Contact

Contributing

See CONTRIBUTING for details on submitting patches and the contribution workflow.

How can I contribute?

  • Take a look at issues with tags marked Good first issue or Help wanted.
  • Join the discussion on the mailing list, subscription guide.
  • Answer questions on issues.
  • Fix bugs reported on issues, and send us a pull request.
  • Review the existing pull request.
  • Improve the website, typically we need
    • blog post
    • translation on documentation
    • use cases around the integration of Dubbo in enterprise systems.
  • Improve the dubbo-admin/dubbo-monitor.
  • Contribute to the projects listed in ecosystem.
  • Other forms of contribution not explicitly enumerated above.
  • If you would like to contribute, please send an email to [email protected] to let us know!

Reporting bugs

Please follow the template for reporting any issues.

Reporting a security vulnerability

Please report security vulnerabilities to us privately.

Dubbo ecosystem

Language

License

Apache Dubbo software is licenced under the Apache License Version 2.0. See the LICENSE file for details.

Comments
  • Wanted: who's using dubbo

    Wanted: who's using dubbo

    Who is Using Dubbo

    First of all, thanks sincerely for constantly using and supporting dubbo. We will try our best to keep dubbo better, and keep growing community and eco-system.

    The purpose of this issue

    • We’d like to listen to the community to make dubbo better.
    • We want to attract more people to contribute to dubbo.
    • We're willing to learn more dubbo use scenarios in the field for better planning.

    What we expect from you

    Pls. submit a comment in this issue to include the following infomation:

    • your company, school or organization.
    • your city and country.
    • your contact info: blog, email, twitter (at least one).
    • for what business scenario do you use dubbo

    You can refer to the following sample answer for the format:

    * Orgnizatioin: Alibaba
    * Location: Hangzhou, China
    * Contact: [email protected]
    * Purpose: used as cornerstone in distributed service architecture alibaba switched years ago.
    

    Thanks again for your participation ! Dubbo Team

    谁在使用 Dubbo

    首先诚挚地感谢每一位持续关注并使用 Dubbo 的朋友。我们会持续投入,力图把 dubbo 变得更好,把 dubbo 社区和生态变得更加繁荣。

    此 Issue 的目的

    • 聆听社区的声音,让 dubbo 变得更好
    • 吸引更多的人参与贡献
    • 更多的了解 dubbo 的实际使用场景,以方便下一步的规划

    我们期待您能提供

    在此提交一条评论, 评论内容包括:

    • 您所在公司、学校或组织
    • 您所在的城市、国家
    • 您的联系方式: 微博、邮箱、微信 (至少一个)
    • 您将 dubbo 用于哪些业务场景

    您可以参考下面的样例来提供您的信息:

    * 组织:阿里巴巴
    * 地点:中国杭州
    * 联系方式:[email protected]
    * 场景:阿里内部服务化改造
    

    再次感谢你的参与!!! Dubbo 团队

    help wanted 
    opened by beiwei30 188
  • Dubbo调用超时,服务端历史统计的处理耗时很短且找不到对应超时上下文的超时日志

    Dubbo调用超时,服务端历史统计的处理耗时很短且找不到对应超时上下文的超时日志

    A调用服务B,超时时间1秒,从某些请求来看超时了两次,重试了两次,第三次成功了,耗时仅4ms。

    客户端有类似日志:

    2018-05-11 00:00:14.741 [T_Common_DispatchExecutor_43] WARN  com.alibaba.dubbo.rpc.cluster.support.FailoverClusterInvoker -  [DUBBO] Although retry the method push in the service com.oppo.push.open.basic.api.service.BroadcastService was successful by the provider 10.12.
    26.124:9000, but there have been failed providers [10.12.26.137:9000] (1/6) from the registry 10.12.26.154:2181 on the consumer 10.12.26.102 using the dubbo version 2.5.3. Last error is: Invoke remote method timeout. method: push, provider: dubbo://10.12.26.137:9000/com
    .oppo.push.open.basic.api.service.BroadcastService?accesslog=false&anyhost=true&application=push-open-platform-gateway-server&check=false&default.delay=-1&default.service.filter=-exception&default.timeout=1000&delay=-1&dubbo=2.5.3&interface=com.oppo.push.open.basic.api.
    service.BroadcastService&loadbalance=random&logger=slf4j&methods=revokePushMessage,revokeSmsMessage,push&pid=31597&push.retries=2&revision=3.0.2-SNAPSHOT&side=consumer&timestamp=1525937532890&transporter=netty, cause: Waiting server-side response timeout by scan timer. 
    start time: 2018-05-11 00:00:13.710, end time: 2018-05-11 00:00:14.738, client elapsed: 0 ms, server elapsed: 1028 ms, timeout: 1000 ms, request: Request [id=2395465, version=2.0.0, twoway=true, event=false, broken=false, data=RpcInvocation [methodName=push, parameterTy
    pes=[class com.oppo.push.open.basic.api.domain.PushTask], arguments=[PushTask[taskId=5af46c8da609e97b6dc17380, messageId=5af4655dad99497f2345ccda, messageCategory=3, messageType=1, taskStatus=5, target=PushTarget{id='5af46c8da609e97b6dc17381', type=REGISTRATION_ID, valu
    e='6187cd138ad2dbceee7f044c2409d4f1;ab5721987d21dcf5e863b58e165f144a;827f4ff3b5d31cce9e441b045eb985c9;e17854797bb4f0e7b14178cbde596c88;CN_647982d13860dde6876cdf0e37165c76;93624a57d555510bcf27cda47d5a06f9;eb3ebc3a53b12ef304de95b3e1852c60;5b752dc47cbca9721239885a062814c2;
    c69bd502aee453f0b78517bc9cb4548d;cc35de8b5edbff28dbaf55e4f60ad20a;CN_1239d29db4f5db54cc1bef51df3f3acc;CN_f6fd0448d1c6281da6ffa50df4d26f38;CN_2c2dc12e3c567ad81a00ca9cdca564e3;CN_d92b53c07de3e70883552295ece900f1;CN_b1cedf2537fd52e91fa29b5fb3c4eb47;525fb9de1d18e21c15479a0a
    7f59b163;CN_debc0d6366f27dea1a45862020687f1a;d5bbb9bae7102ad0d69b3aeb138c4ff4;aac05d1a20d073343917c68798f9be2f;817898207275b2dbeefb6e9398f06b50;203e1b8c0de742605ecb166b6a92d9ce;8c6a4f0925ba3a1d92e3640d00507ade;fc3e47ab8ca527d964fae84ab5db00d7;d9c2ecf8051093bf7eb7818bbe5
    5ec8f;c7894071806e5a6540a5380b1763e91b;b56b7a3e247258034876b9a8522b0dab;8b17b0c449bffa08407a4401f33b988f;789ca011db0844d01932fb8da2553a03;735e6aae28a3f2d5752e65f277bea9c3;e2cfca07e576a0285ab8f50dbaa3a947;8428d377795b069d9dfe033e880ed627;0939eab473c0311b5dd5567f5d191487;
    ec2ff892fbc28fdf0008d532a2c48560;e3df5c83de7f985e73d4e58d4d15225d;CN_c5af7007e71c23771b29eb0713cde7e2;ef91ece8b7e44a13fb31015f8f20b25b;CN_57b78f69e35ce1f8c1fcb27e36758fca;CN_d58cb83cdd32f108f84ff6eae662712f;CN_5564f22ea67f3391fc0f37b23d68ade0;e2b842e3aea81c7e7784fae318e
    bfb8a;2315554dca29eac7100d823f262c2b6f;18c0676bc2300630bad171d72353de0b;116c0728d4d8bed6aa80ba78a77620c1;11c37c408a7c88cf80e7bca695228c05;643413c1adad5e72df94594017797078;CN_c8dedeeeacdc24e9194386929e5367a7;CN_77a3fc33b094c592bad79d1aa95761af;4b9ceaaac2fbca88c01c3976c4a
    c7849;0a1c506ef41acca7bf4c01a758ece6cb;66c0c30821c399e06bb63cfd630b2016;2a5efb3ee633035f5d3700dc744b97d2;07348c108d514773761a828499877ce4;4532d9d99307e6b3634fdfc06aecbb09;6aae440b59761d2ed4e425206f276dc7', effectiveValue='null', unsubscribeValue='null', deviceId='null'}
    , appId=nJNKY574F2C4TWrAqYobsa3X, creator=null, messageTitle=null, createTime=Fri May 11 00:00:13 CST 2018, updateTime=Fri May 11 00:00:13 CST 2018], finishTime=null], extFields={}]], attachments={path=com.oppo.push.open.basic.api.service.BroadcastService, interface=com
    .oppo.push.open.basic.api.service.BroadcastService, timeout=1000, version=0.0.0}]], channel: /10.12.26.102:49081 -> /10.12.26.137:9000, dubbo version: 2.5.3, current host: 10.12.26.102
    com.alibaba.dubbo.rpc.RpcException: Invoke remote method timeout. method: push, provider: dubbo://10.12.26.137:9000/com.oppo.push.open.basic.api.service.BroadcastService?accesslog=false&anyhost=true&application=push-open-platform-gateway-server&check=false&default.delay
    =-1&default.service.filter=-exception&default.timeout=1000&delay=-1&dubbo=2.5.3&interface=com.oppo.push.open.basic.api.service.BroadcastService&loadbalance=random&logger=slf4j&methods=revokePushMessage,revokeSmsMessage,push&pid=31597&push.retries=2&revision=3.0.2-SNAPSH
    OT&side=consumer&timestamp=1525937532890&transporter=netty, cause: Waiting server-side response timeout by scan timer. start time: 2018-05-11 00:00:13.710, end time: 2018-05-11 00:00:14.738, client elapsed: 0 ms, server elapsed: 1028 ms, timeout: 1000 ms, request: Reque
    st [id=2395465, version=2.0.0, twoway=true, event=false, broken=false, data=RpcInvocation [methodName=push, parameterTypes=[class com.oppo.push.open.basic.api.domain.PushTask], arguments=[PushTask[taskId=5af46c8da609e97b6dc17380, messageId=5af4655dad99497f2345ccda, mess
    ageCategory=3, messageType=1, taskStatus=5, target=PushTarget{id='5af46c8da609e97b6dc17381', type=REGISTRATION_ID, value='6187cd138ad2dbceee7f044c2409d4f1;ab5721987d21dcf5e863b58e165f144a;827f4ff3b5d31cce9e441b045eb985c9;e17854797bb4f0e7b14178cbde596c88;CN_647982d13860d
    de6876cdf0e37165c76;93624a57d555510bcf27cda47d5a06f9;eb3ebc3a53b12ef304de95b3e1852c60;5b752dc47cbca9721239885a062814c2;c69bd502aee453f0b78517bc9cb4548d;cc35de8b5edbff28dbaf55e4f60ad20a;CN_1239d29db4f5db54cc1bef51df3f3acc;CN_f6fd0448d1c6281da6ffa50df4d26f38;CN_2c2dc12e3c
    567ad81a00ca9cdca564e3;CN_d92b53c07de3e70883552295ece900f1;CN_b1cedf2537fd52e91fa29b5fb3c4eb47;525fb9de1d18e21c15479a0a7f59b163;CN_debc0d6366f27dea1a45862020687f1a;d5bbb9bae7102ad0d69b3aeb138c4ff4;aac05d1a20d073343917c68798f9be2f;817898207275b2dbeefb6e9398f06b50;203e1b8
    c0de742605ecb166b6a92d9ce;8c6a4f0925ba3a1d92e3640d00507ade;fc3e47ab8ca527d964fae84ab5db00d7;d9c2ecf8051093bf7eb7818bbe55ec8f;c7894071806e5a6540a5380b1763e91b;b56b7a3e247258034876b9a8522b0dab;8b17b0c449bffa08407a4401f33b988f;789ca011db0844d01932fb8da2553a03;735e6aae28a3f
    2d5752e65f277bea9c3;e2cfca07e576a0285ab8f50dbaa3a947;8428d377795b069d9dfe033e880ed627;0939eab473c0311b5dd5567f5d191487;ec2ff892fbc28fdf0008d532a2c48560;e3df5c83de7f985e73d4e58d4d15225d;CN_c5af7007e71c23771b29eb0713cde7e2;ef91ece8b7e44a13fb31015f8f20b25b;CN_57b78f69e35ce
    1f8c1fcb27e36758fca;CN_d58cb83cdd32f108f84ff6eae662712f;CN_5564f22ea67f3391fc0f37b23d68ade0;e2b842e3aea81c7e7784fae318ebfb8a;2315554dca29eac7100d823f262c2b6f;18c0676bc2300630bad171d72353de0b;116c0728d4d8bed6aa80ba78a77620c1;11c37c408a7c88cf80e7bca695228c05;643413c1adad5
    e72df94594017797078;CN_c8dedeeeacdc24e9194386929e5367a7;CN_77a3fc33b094c592bad79d1aa95761af;4b9ceaaac2fbca88c01c3976c4ac7849;0a1c506ef41acca7bf4c01a758ece6cb;66c0c30821c399e06bb63cfd630b2016;2a5efb3ee633035f5d3700dc744b97d2;07348c108d514773761a828499877ce4;4532d9d99307e
    6b3634fdfc06aecbb09;6aae440b59761d2ed4e425206f276dc7', effectiveValue='null', unsubscribeValue='null', deviceId='null'}, appId=nJNKY574F2C4TWrAqYobsa3X, creator=null, messageTitle=null, createTime=Fri May 11 00:00:13 CST 2018, updateTime=Fri May 11 00:00:13 CST 2018], f
    inishTime=null], extFields={}]], attachments={path=com.oppo.push.open.basic.api.service.BroadcastService, interface=com.oppo.push.open.basic.api.service.BroadcastService, timeout=1000, version=0.0.0}]], channel: /10.12.26.102:49081 -> /10.12.26.137:9000
            at com.alibaba.dubbo.rpc.protocol.dubbo.DubboInvoker.doInvoke(DubboInvoker.java:99)
            at com.alibaba.dubbo.rpc.protocol.AbstractInvoker.invoke(AbstractInvoker.java:144)
            at com.alibaba.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:74)
            at com.alibaba.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:53)
            at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
            at com.alibaba.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:75)
            at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
            at com.oppo.trace.dubbo.DubboConsumerTraceFilter.invoke(DubboConsumerTraceFilter.java:37)
            at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
            at com.alibaba.dubbo.rpc.filter.ConsumerContextFilter.invoke(ConsumerContextFilter.java:48)
            at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
            at com.alibaba.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:53)
            at com.alibaba.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:77)
            at com.alibaba.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:227)
            at com.alibaba.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker.invoke(MockClusterInvoker.java:72)
            at com.alibaba.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:52)
            at com.alibaba.dubbo.common.bytecode.proxy0.push(proxy0.java)
            at com.oppo.push.open.platform.gateway.action.notification.NotificationBroadcastAction.doExecute(NotificationBroadcastAction.java:105)
            at com.oppo.push.open.platform.gateway.action.AbstractAction.execute(AbstractAction.java:51)
            at com.oppo.push.httpframework.Action.ActionCallable$1.exec(ActionCallable.java:39)
            at com.oppo.push.httpframework.Action.ActionCallable$1.exec(ActionCallable.java:36)
            at com.oppo.push.httpframework.common.TraceTemplate.rootExec(TraceTemplate.java:24)
            at com.oppo.push.httpframework.Action.ActionCallable.run(ActionCallable.java:36)
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
            at java.util.concurrent.FutureTask.run(FutureTask.java:262)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
            at java.lang.Thread.run(Thread.java:745)
    Caused by: com.alibaba.dubbo.remoting.TimeoutException: Waiting server-side response timeout by scan timer. start time: 2018-05-11 00:00:13.710, end time: 2018-05-11 00:00:14.738, client elapsed: 0 ms, server elapsed: 1028 ms, timeout: 1000 ms, request: Request [id=2395
    465, version=2.0.0, twoway=true, event=false, broken=false, data=RpcInvocation [methodName=push, parameterTypes=[class com.oppo.push.open.basic.api.domain.PushTask], arguments=[PushTask[taskId=5af46c8da609e97b6dc17380, messageId=5af4655dad99497f2345ccda, messageCategory
    =3, messageType=1, taskStatus=5, target=PushTarget{id='5af46c8da609e97b6dc17381', type=REGISTRATION_ID, value='6187cd138ad2dbceee7f044c2409d4f1;ab5721987d21dcf5e863b58e165f144a;827f4ff3b5d31cce9e441b045eb985c9;e17854797bb4f0e7b14178cbde596c88;CN_647982d13860dde6876cdf0e
    37165c76;93624a57d555510bcf27cda47d5a06f9;eb3ebc3a53b12ef304de95b3e1852c60;5b752dc47cbca9721239885a062814c2;c69bd502aee453f0b78517bc9cb4548d;cc35de8b5edbff28dbaf55e4f60ad20a;CN_1239d29db4f5db54cc1bef51df3f3acc;CN_f6fd0448d1c6281da6ffa50df4d26f38;CN_2c2dc12e3c567ad81a00c
    a9cdca564e3;CN_d92b53c07de3e70883552295ece900f1;CN_b1cedf2537fd52e91fa29b5fb3c4eb47;525fb9de1d18e21c15479a0a7f59b163;CN_debc0d6366f27dea1a45862020687f1a;d5bbb9bae7102ad0d69b3aeb138c4ff4;aac05d1a20d073343917c68798f9be2f;817898207275b2dbeefb6e9398f06b50;203e1b8c0de742605e
    cb166b6a92d9ce;8c6a4f0925ba3a1d92e3640d00507ade;fc3e47ab8ca527d964fae84ab5db00d7;d9c2ecf8051093bf7eb7818bbe55ec8f;c7894071806e5a6540a5380b1763e91b;b56b7a3e247258034876b9a8522b0dab;8b17b0c449bffa08407a4401f33b988f;789ca011db0844d01932fb8da2553a03;735e6aae28a3f2d5752e65f2
    77bea9c3;e2cfca07e576a0285ab8f50dbaa3a947;8428d377795b069d9dfe033e880ed627;0939eab473c0311b5dd5567f5d191487;ec2ff892fbc28fdf0008d532a2c48560;e3df5c83de7f985e73d4e58d4d15225d;CN_c5af7007e71c23771b29eb0713cde7e2;ef91ece8b7e44a13fb31015f8f20b25b;CN_57b78f69e35ce1f8c1fcb27e
    36758fca;CN_d58cb83cdd32f108f84ff6eae662712f;CN_5564f22ea67f3391fc0f37b23d68ade0;e2b842e3aea81c7e7784fae318ebfb8a;2315554dca29eac7100d823f262c2b6f;18c0676bc2300630bad171d72353de0b;116c0728d4d8bed6aa80ba78a77620c1;11c37c408a7c88cf80e7bca695228c05;643413c1adad5e72df945940
    17797078;CN_c8dedeeeacdc24e9194386929e5367a7;CN_77a3fc33b094c592bad79d1aa95761af;4b9ceaaac2fbca88c01c3976c4ac7849;0a1c506ef41acca7bf4c01a758ece6cb;66c0c30821c399e06bb63cfd630b2016;2a5efb3ee633035f5d3700dc744b97d2;07348c108d514773761a828499877ce4;4532d9d99307e6b3634fdfc0
    6aecbb09;6aae440b59761d2ed4e425206f276dc7', effectiveValue='null', unsubscribeValue='null', deviceId='null'}, appId=nJNKY574F2C4TWrAqYobsa3X, creator=null, messageTitle=null, createTime=Fri May 11 00:00:13 CST 2018, updateTime=Fri May 11 00:00:13 CST 2018], finishTime=n
    ull], extFields={}]], attachments={path=com.oppo.push.open.basic.api.service.BroadcastService, interface=com.oppo.push.open.basic.api.service.BroadcastService, timeout=1000, version=0.0.0}]], channel: /10.12.26.102:49081 -> /10.12.26.137:9000
            at com.alibaba.dubbo.remoting.exchange.support.DefaultFuture.returnFromResponse(DefaultFuture.java:188)
            at com.alibaba.dubbo.remoting.exchange.support.DefaultFuture.get(DefaultFuture.java:110)
            at com.alibaba.dubbo.remoting.exchange.support.DefaultFuture.get(DefaultFuture.java:84)
            at com.alibaba.dubbo.rpc.protocol.dubbo.DubboInvoker.doInvoke(DubboInvoker.java:96)
            ... 27 common frames omitted
    
    

    有以下两个奇怪的地方:

    1. 从报超时的服务端上看,找不到对应的超时的warn日志
    2. 从我们内部服务端统计的耗时来看,此接口从来没有大于100ms的。

    以下是我的分析:

    猜测和dubbo 服务端进入业务线程前的排队有关,但是我们没有设置queue的长度,所以默认应该是不排队的,线程池耗尽应该抛出的异常不是timeout。

    即使排队了,但是服务端没有找到此上下文的超时日志,感觉像完全没有收到此请求?

    会不会是直接网络上丢了包?如果网络上传输就失败了,异常会是超时么?此请求是一个对象,转换为JSON后有几K。

    求解答

    type/question status/need-triage help wanted 
    opened by Jaskey 63
  • 2.5.4-SNAPSHOT dubbo admin error

    2.5.4-SNAPSHOT dubbo admin error

    ERROR context.ContextLoader - Context initialization failed
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'uriBrokerService': Cannot create inner bean '(inner bean)' of type [com.alibaba.citrus.service.uribroker.impl.URIBrokerServiceImpl$URIBrokerInfo] while setting bean property 'brokers' with key [0]; nested excepti
    on is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#25': Cannot create inner bean 'server' of type [com.alibaba.citrus.service.uribroker.uri.GenericURIBroker] while setting constructor argument; nested exception is org.springframework.beans.fact
    ory.BeanCreationException: Error creating bean with name 'server': Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'URIType' of bean class [com.alibaba.citrus.service.uribroker.uri.GenericURIBroker]: Bean property 'URIType'
    is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
            at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:230)
            at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:122)
            at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:287)
    
    opened by ddatsh 61
  • dubbo service repeat register to registry

    dubbo service repeat register to registry

    Environment

    • Dubbo version: 2.7.8
    • Operating System version:win10
    • Java version: 1.8

    information

    服务重复注册,用的是dububo:2.7.8, spring-boot:2.3.0.RELEASE,我的pom

       <dependency>
                 <groupId>org.apache.dubbo</groupId>
                 <artifactId>dubbo-spring-boot-starter</artifactId>
                 <version>${dubbo.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
                 <artifactId>dubbo-dependencies-zookeeper</artifactId>
                 <version>${dubbo.version}</version>
                 <type>pom</type>
                 <exclusions>
                     <exclusion>
                         <groupId>org.slf4j</groupId>
                         <artifactId>slf4j-log4j12</artifactId>
                     </exclusion>
                 </exclusions>
             </dependency>
    

    dubbo服务

    @DubboService(version = "1.0.0", validation = "true", dynamic = true)
    public class AccountRemoteServiceImpl implements AccountRemoteService {
        @Autowired
        AccountBizService accountBizService;
    
        @Override
        public Boolean debit(String userId, BigDecimal money) {
            return  accountBizService.debit(userId, money);
        }
    }
    

    查看zk服务的节点信息, image

    ip地址一样;

    4213来看,同样存在这样的问题?说是dynamic的问题,默认false,则持久路径,true为临时路径,2.7.8为true还是没用。 DubboService ···java /** * Whether the service is dynamic, default value is true */ boolean dynamic() default true; ···

    调试结果:

    image

    临时节点,在连接断开后,zk会自动删除, 这不应该呀!

    我们dubbo版本为2.6.9,dubbo-boot:0.2.1.RELEASE,spring-boot:2.1..RELEASE 存在同样的问题,重复注册? pom

    <!--0.2.1.RELEASE start-->
            <dependency>
                <groupId>com.alibaba.boot</groupId>
                <artifactId>dubbo-spring-boot-starter</artifactId>
                <version>${alibaba.boot.dubbo.springboot.starter}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>dubbo</artifactId>
                <version>${dubbo.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-framework</artifactId>
                <version>2.8.0</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-recipes</artifactId>
                <version>2.8.0</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-all</artifactId>
                <version>4.1.15.Final</version>
            </dependency>
            <!--0.2.1.RELEASE end-->
    

    dubbo 服务

    @Service(version = "1.0.0", validation = "true", dynamic = true)
    public class AccountRemoteServiceImpl implements AccountRemoteService {
        @Autowired
        AccountBizService accountBizService;
    
        @Override
        public Boolean debit(String userId, BigDecimal money) {
            return  accountBizService.debit(userId, money);
        }
    }
    

    然而注解service为false

    public @interface Service {
    ...
     boolean dynamic() default false;
    ...
    }
    

    dynamic 为false还是有;

    从这两个例子来看,跟dynamic 无关。

    这是一个问题,另外我想问一下,服务节点路径的timestamp 是做什么用了

    /dubbo/com.story.home.cherry.api.domain.account.service.AccountRemoteService/providers/dubbo%3A%2F%2F10.242.214.156%3A20880%2Fcom.story.home.cherry.api.domain.account.service.AccountRemoteService%3Fanyhost%3Dtrue%26application%3Dcomosus-cherry%26deprecated%3Dfalse%26dubbo%3D2.0.2%26dynamic%3Dtrue%26generic%3Dfalse%26interface%3Dcom.story.home.cherry.api.domain.account.service.AccountRemoteService%26metadata-type%3Dremote%26methods%3Ddebit%26pid%3D14688%26release%3D2.7.8%26retries%3D0%26revision%3D1.0.0%26service.filter%3DelapsedTimeFilter%26side%3Dprovider%26threads%3D400%26timeout%3D6000000%26timestamp%3D1611295886073%26version%3D1.0.0
    

    去掉timestamp,是不是,就保持一个节点了, 但这不是根本问题。

    type/bug level/easy version/2.7.x 
    opened by Donaldhan 57
  •  Is it necessary to set the value of SPI?

    Is it necessary to set the value of SPI?

    • [x] I have searched the issues of this repository and believe that this is not a duplicate.
    • [x] I have checked the FAQ of this repository and believe that this is not a duplicate.

    Environment

    Dubbo version: 2.6.2 Operating System version: win7 Java version: 1.8

    Step to reproduce this issue

    阅读源码发现,每个代理实现类都会去判断默认实现

    public class Protocol$Adaptive implements org.apache.dubbo.rpc.Protocol
    {
        public void destroy()
        {
            throw new UnsupportedOperationException(
                    "method public abstract void org.apache.dubbo.rpc.Protocol.destroy() of interface org.apache.dubbo.rpc.Protocol is not adaptive method!");
        }
    
        public int getDefaultPort()
        {
            throw new UnsupportedOperationException(
                    "method public abstract int org.apache.dubbo.rpc.Protocol.getDefaultPort() of interface org.apache.dubbo.rpc.Protocol is not adaptive method!");
        }
    
        public org.apache.dubbo.rpc.Invoker refer(java.lang.Class arg0, org.apache.dubbo.common.URL arg1)
            throws org.apache.dubbo.rpc.RpcException
        {
            if (arg1 == null)
                throw new IllegalArgumentException("url == null");
            org.apache.dubbo.common.URL url = arg1;
            String extName = (url.getProtocol() == null ? "dubbo" : url.getProtocol());
            if (extName == null)
                throw new IllegalStateException("Fail to get extension(org.apache.dubbo.rpc.Protocol) name from url("
                        + url.toString() + ") use keys([protocol])");
            org.apache.dubbo.rpc.Protocol extension = (org.apache.dubbo.rpc.Protocol) ExtensionLoader
                    .getExtensionLoader(org.apache.dubbo.rpc.Protocol.class).getExtension(extName);
            return extension.refer(arg0, arg1);
        }
    
        public org.apache.dubbo.rpc.Exporter export(org.apache.dubbo.rpc.Invoker arg0)
            throws org.apache.dubbo.rpc.RpcException
        {
            if (arg0 == null)
                throw new IllegalArgumentException("org.apache.dubbo.rpc.Invoker argument == null");
            if (arg0.getUrl() == null)
                throw new IllegalArgumentException("org.apache.dubbo.rpc.Invoker argument getUrl() == null");
            org.apache.dubbo.common.URL url = arg0.getUrl();
            String extName = (url.getProtocol() == null ? "dubbo" : url.getProtocol());
            if (extName == null)
                throw new IllegalStateException("Fail to get extension(org.apache.dubbo.rpc.Protocol) name from url("
                        + url.toString() + ") use keys([protocol])");
            org.apache.dubbo.rpc.Protocol extension = (org.apache.dubbo.rpc.Protocol) ExtensionLoader
                    .getExtensionLoader(org.apache.dubbo.rpc.Protocol.class).getExtension(extName);
            return extension.export(arg0);
        }
    }
    
    opened by freeseawind 41
  • curator_version版本4.0.1存在缺陷

    curator_version版本4.0.1存在缺陷

    Environment

    • Dubbo version: 3.0

    Steps to reproduce this issue

    现在dubbo3.0在github构建动不动就timeout,看了一下workflow的build-and-test-3.yml,unit test的timeout-minutes分别是40分钟(with Integration Tests)和50分钟(without Integration Tests),干脆都改成60分钟,效果好多了,但是还是有构建失败,查了日志发现充斥着这个东西: [Curator-ConnectionStateManager-0] WARN org.apache.curator.framework.state.ConnectionStateManager - Session timeout has elapsed while SUSPENDED. Injecting a session expiration. Elapsed ms: 63515. Adjusted session timeout ms: 60000 确认了一下这个是个缺陷,4.1.0才修复,而dubbo使用的版本是4.0.1 https://issues.apache.org/jira/browse/CURATOR-405

    opened by zrlw 39
  • [3.0] 新增的GlobalResourcesRepository全局资源管理功能可能和github构建的并行策略有冲突

    [3.0] 新增的GlobalResourcesRepository全局资源管理功能可能和github构建的并行策略有冲突

    • Dubbo version: 3.0

    实测发现GlobalResourcesRepository对github的单元测试和集成测试均有影响。

    首先说一下github集成测试时,如下所示,当启动一个测试类时,却开始去执行前面一个测试类的全局资源释放操作,导致正在启动的测试类各种异常:

    2021-10-20T13:28:53.6306484Z Running org.apache.dubbo.samples.version.VersionServiceStarIT 
    <== 开始测试VersionServiceStarIT 
    2021-10-20T13:28:53.6317495Z [20/10/21 01:28:12:012 UTC] main  INFO support.DefaultTestContextBootstrapper: Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: 
    <== 加载TestExecutionListener (这个新增的TestExecutionListener 也会导致用全局资源的测试类出现问题,另开了issue)
    ...
    2021-10-20T13:28:53.6419566Z [20/10/21 01:28:12:012 UTC] main  INFO deploy.DefaultApplicationDeployer:  [DUBBO] Dubbo application[1.1] is stopping., dubbo version: 3.0.4-SNAPSHOT, current host: 192.168.160.5
    <==  application[1.1] 是前面已经完成测试的VersionService1IT创建的,现在才开始销毁了
    
    2021-10-20T13:28:53.6558073Z [20/10/21 01:28:12:012 UTC] main  INFO model.FrameworkModel:  [DUBBO] Dubbo framework[1] is destroying ..., dubbo version: 3.0.4-SNAPSHOT, current host: 192.168.160.5
    <== 开始销毁VersionService1IT的framework model
    
    2021-10-20T13:28:53.6559810Z [20/10/21 01:28:12:012 UTC] main  INFO dubbo.DubboProtocol:  [DUBBO] Destroying protocol [DubboProtocol] ..., dubbo version: 3.0.4-SNAPSHOT, current host: 192.168.160.5
    2021-10-20T13:28:53.6577037Z [20/10/21 01:28:12:012 UTC] main  INFO model.FrameworkModel:  [DUBBO] Dubbo framework[1] is destroyed, dubbo version: 3.0.4-SNAPSHOT, current host: 192.168.160.5
    2021-10-20T13:28:53.6578732Z [20/10/21 01:28:12:012 UTC] main  INFO resource.GlobalResourcesRepository:  [DUBBO] Destroying global resources ..., dubbo version: 3.0.4-SNAPSHOT, current host: 192.168.160.5
    2021-10-20T13:28:53.6580622Z [20/10/21 01:28:12:012 UTC] main  INFO resource.GlobalResourcesRepository:  [DUBBO] Dubbo is completely destroyed, dubbo version: 3.0.4-SNAPSHOT, current host: 192.168.160.5
    <== 销毁完毕
    
    <== 然后开始测试就直接抛DubboProtocol is destroyed异常
    2021-10-20T13:28:53.6694315Z [20/10/21 01:28:13:013 UTC] main ERROR integration.RegistryDirectory:  [DUBBO] Failed to refer invoker for interface:interface org.apache.dubbo.samples.version.api.VersionService,url:(dubbo://192.168.160.3:20880/org.apache.dubbo.samples.version.api.VersionService?anyhost=true&application=version-provider&background=false&check=false&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&interface=org.apache.dubbo.samples.version.api.VersionService&metadata-type=remote&methods=sayHello&release=3.0.4-SNAPSHOT&revision=1.0.0&service-name-mapping=true&side=provider&token=1de93a01-b8f8-4f81-aa28-653b638e83ed&version=1.0.0)DubboProtocol is destroyed, dubbo version: 3.0.4-SNAPSHOT, current host: 192.168.160.5
    2021-10-20T13:28:53.6699094Z java.lang.IllegalStateException: DubboProtocol is destroyed
    2021-10-20T13:28:53.6700889Z 	at org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol.checkDestroyed(DubboProtocol.java:346)
    2021-10-20T13:28:53.6703229Z 	at org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol.refer(DubboProtocol.java:421)
    2021-10-20T13:28:53.6705268Z 	at org.apache.dubbo.qos.protocol.QosProtocolWrapper.refer(QosProtocolWrapper.java:85)
    2021-10-20T13:28:53.6707565Z 	at org.apache.dubbo.rpc.protocol.ProtocolListenerWrapper.refer(ProtocolListenerWrapper.java:77)
    2021-10-20T13:28:53.6710150Z 	at org.apache.dubbo.rpc.cluster.filter.ProtocolFilterWrapper.refer(ProtocolFilterWrapper.java:74)
    2021-10-20T13:28:53.6712930Z 	at org.apache.dubbo.rpc.protocol.ProtocolSerializationWrapper.refer(ProtocolSerializationWrapper.java:52)
    2021-10-20T13:28:53.6714976Z 	at org.apache.dubbo.rpc.Protocol$Adaptive.refer(Protocol$Adaptive.java)
    2021-10-20T13:28:53.6716909Z 	at org.apache.dubbo.registry.integration.RegistryDirectory.toInvokers(RegistryDirectory.java:376)
    2021-10-20T13:28:53.6719727Z 	at org.apache.dubbo.registry.integration.RegistryDirectory.refreshInvoker(RegistryDirectory.java:235)
    2021-10-20T13:28:53.6723032Z 	at org.apache.dubbo.registry.integration.RegistryDirectory.refreshOverrideAndInvoker(RegistryDirectory.java:187)
    2021-10-20T13:28:53.6726085Z 	at org.apache.dubbo.registry.integration.RegistryDirectory.notify(RegistryDirectory.java:164)
    2021-10-20T13:28:53.6728400Z 	at org.apache.dubbo.registry.support.AbstractRegistry.notify(AbstractRegistry.java:439)
    2021-10-20T13:28:53.6730626Z 	at org.apache.dubbo.registry.support.FailbackRegistry.doNotify(FailbackRegistry.java:371)
    2021-10-20T13:28:53.6732859Z 	at org.apache.dubbo.registry.support.FailbackRegistry.notify(FailbackRegistry.java:363)
    2021-10-20T13:28:53.6816166Z 	at org.apache.dubbo.registry.zookeeper.ZookeeperRegistry.doSubscribe(ZookeeperRegistry.java:190)
    2021-10-20T13:28:53.6818703Z 	at org.apache.dubbo.registry.support.FailbackRegistry.subscribe(FailbackRegistry.java:298)
    2021-10-20T13:28:53.6821130Z 	at org.apache.dubbo.registry.ListenerRegistryWrapper.subscribe(ListenerRegistryWrapper.java:109)
    2021-10-20T13:28:53.6823746Z 	at org.apache.dubbo.registry.integration.RegistryDirectory.subscribe(RegistryDirectory.java:119)
    2021-10-20T13:28:53.6826502Z 	at org.apache.dubbo.registry.integration.RegistryProtocol.doCreateInvoker(RegistryProtocol.java:560)
    2021-10-20T13:28:53.6830203Z 	at org.apache.dubbo.registry.integration.InterfaceCompatibleRegistryProtocol.getInvoker(InterfaceCompatibleRegistryProtocol.java:58)
    2021-10-20T13:28:53.6834332Z 	at org.apache.dubbo.registry.client.migration.MigrationInvoker.refreshInterfaceInvoker(MigrationInvoker.java:448)
    2021-10-20T13:28:53.6838444Z 	at org.apache.dubbo.registry.client.migration.MigrationInvoker.migrateToApplicationFirstInvoker(MigrationInvoker.java:239)
    2021-10-20T13:28:53.6842415Z 	at org.apache.dubbo.registry.client.migration.MigrationRuleHandler.refreshInvoker(MigrationRuleHandler.java:73)
    2021-10-20T13:28:53.6845753Z 	at org.apache.dubbo.registry.client.migration.MigrationRuleHandler.doMigrate(MigrationRuleHandler.java:57)
    2021-10-20T13:28:53.6848930Z 	at org.apache.dubbo.registry.client.migration.MigrationRuleListener.onRefer(MigrationRuleListener.java:241)
    2021-10-20T13:28:53.6852265Z 	at org.apache.dubbo.registry.integration.RegistryProtocol.interceptInvoker(RegistryProtocol.java:529)
    2021-10-20T13:28:53.6855117Z 	at org.apache.dubbo.registry.integration.RegistryProtocol.doRefer(RegistryProtocol.java:498)
    2021-10-20T13:28:53.6857492Z 	at org.apache.dubbo.registry.integration.RegistryProtocol.refer(RegistryProtocol.java:483)
    2021-10-20T13:28:53.6860176Z 	at org.apache.dubbo.qos.protocol.QosProtocolWrapper.refer(QosProtocolWrapper.java:83)
    2021-10-20T13:28:53.6862490Z 	at org.apache.dubbo.rpc.protocol.ProtocolListenerWrapper.refer(ProtocolListenerWrapper.java:74)
    2021-10-20T13:28:53.6865071Z 	at org.apache.dubbo.rpc.cluster.filter.ProtocolFilterWrapper.refer(ProtocolFilterWrapper.java:71)
    2021-10-20T13:28:53.6867853Z 	at org.apache.dubbo.rpc.protocol.ProtocolSerializationWrapper.refer(ProtocolSerializationWrapper.java:52)
    2021-10-20T13:28:53.6870057Z 	at org.apache.dubbo.rpc.Protocol$Adaptive.refer(Protocol$Adaptive.java)
    2021-10-20T13:28:53.6872000Z 	at org.apache.dubbo.config.ReferenceConfig.createInvokerForRemote(ReferenceConfig.java:474)
    2021-10-20T13:28:53.6874192Z 	at org.apache.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:379)
    2021-10-20T13:28:53.6875945Z 	at org.apache.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:266)
    2021-10-20T13:28:53.6877534Z 	at org.apache.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:203)
    2021-10-20T13:28:53.6879403Z 	at org.apache.dubbo.config.utils.SimpleReferenceCache.get(SimpleReferenceCache.java:117)
    2021-10-20T13:28:53.6881786Z 	at org.apache.dubbo.config.deploy.DefaultModuleDeployer.lambda$referServices$6(DefaultModuleDeployer.java:326)
    2021-10-20T13:28:53.6883898Z 	at java.util.concurrent.ConcurrentHashMap$ValuesView.forEach(ConcurrentHashMap.java:4707)
    2021-10-20T13:28:53.6886142Z 	at org.apache.dubbo.config.deploy.DefaultModuleDeployer.referServices(DefaultModuleDeployer.java:306)
    2021-10-20T13:28:53.6888758Z 	at org.apache.dubbo.config.deploy.DefaultModuleDeployer.start(DefaultModuleDeployer.java:146)
    2021-10-20T13:28:53.6892449Z 	at org.apache.dubbo.config.spring.context.DubboDeployApplicationListener.onContextRefreshedEvent(DubboDeployApplicationListener.java:108)
    2021-10-20T13:28:53.6897335Z 	at org.apache.dubbo.config.spring.context.DubboDeployApplicationListener.onApplicationEvent(DubboDeployApplicationListener.java:98)
    2021-10-20T13:28:53.6901894Z 	at org.apache.dubbo.config.spring.context.DubboDeployApplicationListener.onApplicationEvent(DubboDeployApplicationListener.java:44)
    
    

    详细日志见:https://github.com/apache/dubbo/runs/3951950812?check_suite_focus=true

    类似的失败构建日志有很多,比如这个也是: https://github.com/apache/dubbo/runs/3959438481?check_suite_focus=true

    type/bug 
    opened by zrlw 38
  • 使用注册中心调用rpc的bug,Directory already destroyed

    使用注册中心调用rpc的bug,Directory already destroyed

    • [ ] I have searched the issues of this repository and believe that this is not a duplicate.

    Environment

    • Dubbo version: 3.0.4
    • Operating System version: window10
    • Java version: 8
    • nacosclient:2.0.0
    • dubbo-registry-nacos: 3.0.4
    • dubbo-spring-boot-starter: 3.0.4

    Steps to reproduce this issue

    1. 使用triple协议,启动provider,然后启动consumer
    2. 调用一次服务,此时rpc调用正常
    3. 重启provider服务,并重启consumer服务
    4. 调用此前正常的服务,则抛出异常 Directory already destroyed
    type/discussion 
    opened by paopaoshimeng 32
  • 超大cache文件DubboSaveRegistryCache-thread-1线程多次加载致使内存溢出

    超大cache文件DubboSaveRegistryCache-thread-1线程多次加载致使内存溢出

    在dubbo的服务注册缓存文件cache目录下的文件已经达到了900M System.getProperty ("user.home") + "/.dubbo/dubbo-registry-" + url.getHost () + ".cache" 对比其他正常服务器,正常文件大小只有1-2M,打开这个900M的文件其中很多内容为 \u0000, 由于dubbo默认每隔10分钟会读取这个文件,由于文件太大,导致每次读取造成频繁的GC最终致使JVM在这个时间段内CPU负载非常高而无法处理业务请求。 通过DUMP内存,发现内存泄露都是线程 java.lang.Thread @ 0x779569808 DubboSaveRegistryCache-thread-1 其中同样类似的线程还有2个,每个线程占用200-300M 另外还有大对象 com.alibaba.dubbo.registry.zookeeper.ZookeeperRegistry 3个无法回收,200M左右一个 总计1.5G大小内存无法释放!

    为何会有如此大的缓存文件?为何同样的文件会被不同的线程多次加载?

    type/question status/waiting-for-feedback 
    opened by maodie007 32
  • 关于  @DubboReference 注解中不配置URL问题

    关于 @DubboReference 注解中不配置URL问题

    Dubbo版本2.7.7和3.0.0都有这个问题。 目前发现DubboReference注解中不增加URL并指定IP和端口,消费端就无法访问生产端。提示生产端不存在或是列入了黑名单 1、如果要在URL中指定IP和端口,对于增加生产端的灵活性是不是就降底,对于消费端来说应该是透明的。 2、在application.yml配置文件中是否有什么特别的配置可以去掉DubboReference中的url配置 @DubboReference(version = "${platform.service.version}", url = "dubbo://127.0.0.1:12316", lazy = true)

    目前我的配置 生产端配置 dubbo: application: id: ${spring.application.name} name: ${spring.application.name} register-mode: instance service-discovery: migration: FORCE_APPLICATION qos-enable: false qos-accept-foreign-ip: false scan: base-packages: com.dd.modules,com.dd.framework registry: # file: ${user.home}/dubbo-cache/${spring.application.name}/dubbo.cache address: nacos://${nacos.host}:${nacos.port}/?registry-type=service monitor: protocol: registry protocol: name: dubbo port: 12316 server: netty4 serialization: kryo provider: retries: 0 delay: -1 timeout: 12000 consumer: timeout: 12000 check: false # 服务启动时检查被调用服务是否可用 client: netty4 retries: 0 # 服务调用重试次数

    消费端配置 dubbo: application: id: ${spring.application.name} name: ${spring.application.name} service-discovery: migration: FORCE_APPLICATION qos-enable: false qos-accept-foreign-ip: false registry: # file: ${user.home}/dubbo-cache/${spring.application.name}/dubbo.cache address: nacos://${nacos.host}:${nacos.port} monitor: protocol: registry protocol: name: dubbo port: 12316 server: netty4 serialization: kryo consumer: timeout: 12000 check: false # 服务启动时检查被调用服务是否可用 client: netty4 retries: 0 # 服务调用重试次数

    opened by gang0713 31
  • #8872 transfer layer session no close

    #8872 transfer layer session no close

    Environment

    • Dubbo version: 2.7.14
    • Operating System version: win,centos
    • Java version: jdk8 & jdk11

    Steps to reproduce this issue

    for 1, n do

    1. instance = ReferenceConfig.get();
    2. call instance.func() success();
    3. ReferenceConfig.destroy() end

    the exchangeclient no close. the connects = n * set connects

    Expected Result

    ReferenceConfig set connects = 5 and the connect session size = 5 * n the exchange client resource no gc.

    Actual Result

    in my case, the old-gen use too much and full gc call frequently

    now i find two problem

    1. transfer layer, close exception

    have two same service(hotload ReferenceConfig), notify each other then 2. Registration Center notify and close session will connect again, and new ReferenceConfig will connect, so the connect session size also = 5 * n

    opened by owen200008 30
  • 生产者重启后,消费者报错:message can not send, because channel is closed

    生产者重启后,消费者报错:message can not send, because channel is closed

    Environment

    • Dubbo version: 2.7.8
    • Operating System version: CentOs7.6
    • Java version: 1.8

    Steps to reproduce this issue

    1. 服务A和服务B互为生产者和消费者,用Nacos作注册中心
    2. 服务A重启,重启完毕后服务B调用服务A时报错
    3. 主要错误信息:message can not send, because channel is closed
    4. 目前的临时解决办法:重启服务B,恢复正常(重启导致服务不稳定,望解决)

    stack info

    01/03/2023 11:04:17 ERROR [http-nio-8685-exec-3]c.c.l.c.a.BaseExceptionHandlerAdvice - Failed to invoke the method getApprovalTodoCount in the service com.ctrod.cvoon.rpc.AdminRpcManager. Tried 3 times of the providers [10.1.138.65:20882] (1/1) from the registry 10.1.138.65:8848 on the consumer 10.1.138.65 using the dubbo version 2.7.8. Last error is: Failed to invoke remote method: getApprovalTodoCount, provider: dubbo://10.1.138.65:20882/com.ctrod.cvoon.rpc.AdminRpcManager?anyhost=true&application=LiveCloudBaseApplication&category=providers&check=false&deprecated=false&dispatcher=message&dubbo=2.0.2&dynamic=true&generic=false&init=false&interface=com.ctrod.cvoon.rpc.AdminRpcManager&metadata-type=remote&methods=getTimeOutMessageSubscribeSettingUserChooseDto,getCorpDto,checkCommunityPermission,getDepartmentMap,getDataPermissionUserIdList,getTimeOutMessageSubscribeSettingDto,getApprovalTodoCount&path=com.ctrod.cvoon.rpc.AdminRpcManager&pid=32612&protocol=dubbo&qos.enable=false&register.ip=10.1.138.65&release=2.7.15&remote.application=ctrod-cvoon-admin&retries=2&revision=1.0.0&service.name=ServiceBean:/com.ctrod.cvoon.rpc.AdminRpcManager&side=consumer&sticky=false&timeout=9000&timestamp=1672715046548, cause: message can not send, because channel is closed . url:dubbo://10.1.138.65:20882/com.ctrod.cvoon.rpc.ApprovalRpcManager?anyhost=true&application=LiveCloudBaseApplication&category=providers&check=false&codec=dubbo&deprecated=false&dispatcher=message&dubbo=2.0.2&dynamic=true&generic=false&heartbeat=60000&init=false&interface=com.ctrod.cvoon.rpc.ApprovalRpcManager&metadata-type=remote&methods=needApprovalAndCheckPermission,cancelApproval,submitApprovalRecord&path=com.ctrod.cvoon.rpc.ApprovalRpcManager&pid=32612&protocol=dubbo&qos.enable=false&register.ip=10.1.138.65&release=2.7.15&remote.application=ctrod-cvoon-admin&retries=2&revision=1.0.0&service.name=ServiceBean:/com.ctrod.cvoon.rpc.ApprovalRpcManager&side=consumer&sticky=false&timeout=9000&timestamp=1672305915260 org.apache.dubbo.rpc.RpcException: Failed to invoke the method getApprovalTodoCount in the service com.ctrod.cvoon.rpc.AdminRpcManager. Tried 3 times of the providers [10.1.138.65:20882] (1/1) from the registry 10.1.138.65:8848 on the consumer 10.1.138.65 using the dubbo version 2.7.8. Last error is: Failed to invoke remote method: getApprovalTodoCount, provider: dubbo://10.1.138.65:20882/com.ctrod.cvoon.rpc.AdminRpcManager?anyhost=true&application=LiveCloudBaseApplication&category=providers&check=false&deprecated=false&dispatcher=message&dubbo=2.0.2&dynamic=true&generic=false&init=false&interface=com.ctrod.cvoon.rpc.AdminRpcManager&metadata-type=remote&methods=getTimeOutMessageSubscribeSettingUserChooseDto,getCorpDto,checkCommunityPermission,getDepartmentMap,getDataPermissionUserIdList,getTimeOutMessageSubscribeSettingDto,getApprovalTodoCount&path=com.ctrod.cvoon.rpc.AdminRpcManager&pid=32612&protocol=dubbo&qos.enable=false&register.ip=10.1.138.65&release=2.7.15&remote.application=ctrod-cvoon-admin&retries=2&revision=1.0.0&service.name=ServiceBean:/com.ctrod.cvoon.rpc.AdminRpcManager&side=consumer&sticky=false&timeout=9000&timestamp=1672715046548, cause: message can not send, because channel is closed . url:dubbo://10.1.138.65:20882/com.ctrod.cvoon.rpc.ApprovalRpcManager?anyhost=true&application=LiveCloudBaseApplication&category=providers&check=false&codec=dubbo&deprecated=false&dispatcher=message&dubbo=2.0.2&dynamic=true&generic=false&heartbeat=60000&init=false&interface=com.ctrod.cvoon.rpc.ApprovalRpcManager&metadata-type=remote&methods=needApprovalAndCheckPermission,cancelApproval,submitApprovalRecord&path=com.ctrod.cvoon.rpc.ApprovalRpcManager&pid=32612&protocol=dubbo&qos.enable=false&register.ip=10.1.138.65&release=2.7.15&remote.application=ctrod-cvoon-admin&retries=2&revision=1.0.0&service.name=ServiceBean:/com.ctrod.cvoon.rpc.ApprovalRpcManager&side=consumer&sticky=false&timeout=9000&timestamp=1672305915260 at org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:113) at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:260) at org.apache.dubbo.rpc.cluster.interceptor.ClusterInterceptor.intercept(ClusterInterceptor.java:47) at org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster$InterceptorInvokerNode.invoke(AbstractCluster.java:92) at org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker.invoke(MockClusterInvoker.java:88) at org.apache.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:74) at org.apache.dubbo.common.bytecode.proxy2.getApprovalTodoCount(proxy2.java) at com.ctrod.live.cloud.manager.ext.BaseDataManagerImpl.pcIndexStatistics(BaseDataManagerImpl.java:241) at com.ctrod.live.cloud.controller.base.BaseDataController.pcIndexStatistics(BaseDataController.java:170) at sun.reflect.GeneratedMethodAccessor1387.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) at javax.servlet.http.HttpServlet.service(HttpServlet.java:626) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) at javax.servlet.http.HttpServlet.service(HttpServlet.java:733) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at com.ctrod.live.cloud.filter.BaseCorsFilter.doFilter(BaseCorsFilter.java:31) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1589) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:750) Caused by: org.apache.dubbo.remoting.RemotingException: message can not send, because channel is closed . url:dubbo://10.1.138.65:20882/com.ctrod.cvoon.rpc.ApprovalRpcManager?anyhost=true&application=LiveCloudBaseApplication&category=providers&check=false&codec=dubbo&deprecated=false&dispatcher=message&dubbo=2.0.2&dynamic=true&generic=false&heartbeat=60000&init=false&interface=com.ctrod.cvoon.rpc.ApprovalRpcManager&metadata-type=remote&methods=needApprovalAndCheckPermission,cancelApproval,submitApprovalRecord&path=com.ctrod.cvoon.rpc.ApprovalRpcManager&pid=32612&protocol=dubbo&qos.enable=false&register.ip=10.1.138.65&release=2.7.15&remote.application=ctrod-cvoon-admin&retries=2&revision=1.0.0&service.name=ServiceBean:/com.ctrod.cvoon.rpc.ApprovalRpcManager&side=consumer&sticky=false&timeout=9000&timestamp=1672305915260 at org.apache.dubbo.remoting.transport.AbstractClient.send(AbstractClient.java:176) at org.apache.dubbo.remoting.transport.AbstractPeer.send(AbstractPeer.java:53) at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeChannel.request(HeaderExchangeChannel.java:135) at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeClient.request(HeaderExchangeClient.java:95) at org.apache.dubbo.rpc.protocol.dubbo.ReferenceCountExchangeClient.request(ReferenceCountExchangeClient.java:91) at org.apache.dubbo.rpc.protocol.dubbo.DubboInvoker.doInvoke(DubboInvoker.java:105) at org.apache.dubbo.rpc.protocol.AbstractInvoker.invoke(AbstractInvoker.java:163) at org.apache.dubbo.rpc.protocol.AsyncToSyncInvoker.invoke(AsyncToSyncInvoker.java:52) at org.apache.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:78) at org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:89) at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83) at org.apache.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:51) at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83) at org.apache.dubbo.rpc.filter.ConsumerContextFilter.invoke(ConsumerContextFilter.java:69) at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83) at org.apache.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:56) at org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:82) ... 63 common frames omitted

    type/bug 
    opened by huchuansai 0
  • style:optimization-log4j

    style:optimization-log4j

    What is the purpose of the change

    optimization log4j

    Brief changelog

    Verifying this change

    Checklist

    • [x] Make sure there is a GitHub_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GitHub issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
    • [ ] Each commit in the pull request should have a meaningful subject line and body.
    • [ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
    • [ ] Check if is necessary to patch to Dubbo 3 if you are work on Dubbo 2.7
    • [ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
    • [ ] Add some description to dubbo-website project if you are requesting to add a feature.
    • [ ] GitHub Actions works fine on your own branch.
    • [ ] If this contribution is large, please follow the Software Donation Guide.
    opened by baerwang 0
  • [featrue]  Proto IDL control platform Implementation

    [featrue] Proto IDL control platform Implementation

    hi community. For Proto IDL control platform design. I suggest splitting the tasks into the following parts and trying to complete them

    • [ ] Dubbo realizes uploading proto files on the provider side and downloading proto files on the consumer side [doing]
    • [ ] dubbo-admin implements schema upload interface and basic version management interface
    • [ ] dubbo-admin implements maven-based jar package remote management
    • [ ] dubbo-admin implements protobuf syntax verification
    • [ ] dubbo-admin implements timely compilation of proto files based on janino

    In the near future, I will discuss 1 or 2 tasks with @LXPWing conducting collaborative research

    type/feature 
    opened by complone 1
  • 启动一直报这个无法获取metadata的错误

    启动一直报这个无法获取metadata的错误

    • [ ] I have searched the issues of this repository and believe that this is not a duplicate.

    Ask your question here

    dubbo:3.1.1 jdk:11 os: centOS 7.6 配置如下:

    dubbo:
      application:
        name: 
        metadata-service-protocol: tri
      registry:
        address: ${NACOS_REGISTER_ADDR}
        group: ${DUBBO_REGISTER_GROUP}
        parameters:
          namespace: ${NACOS_NAMESPACE}
        username: ${NACOS_USERNAME}
        password: ${NACOS_PASSWORD}
      metadata-report:
        address: ${NACOS_REGISTER_ADDR}
      protocol:
        name: ${DUBBO_PROTOCAL_NAME}
        port: ${DUBBO_PROTOCAL_PORT}
        accesslog: false
      consumer:
        filter: dubboFilterConsumer
        check: false
        timeout: ${DUBBO_CONSUMER_TIMEOUT}
        retries: ${DUBBO_CONSUMER_RETRIES}
      provider:
        filter: dubboFilterProvider
    
    

    代码里面同时使用了rest和 tri 两种协议,直接注解在接口配置上 启动时一直滚动报下面这个错误,

    [DUBBO] Failed to get app metadata for revision 3005bae31919d143caf981fc3d373483 for type local from instance 10.70.33.251:9092, dubbo version: 3.1.1, current host: 10.70.34.222 org.apache.dubbo.rpc.RpcException: Fail to invoke remote method: getMetadataInfo, provider: tri://10.70.33.251:50051/org.apache.dubbo.metadata.MetadataService?connections=1&corethreads=2&dubbo=2.0.2&group=demoGroup&port=50051&protocol=tri&release=3.1.1&retries=0&side=provider&threadpool=cached&threads=100&timeout=5000&token=**************************************************, cause: org.apache.dubbo.rpc.StatusRpcException: UNKNOWN : unknown ~~ java.lang.NullPointerException ~~  ~~ RemoteAddress:10.70.33.251:50051 ~~         at org.apache.dubbo.rpc.protocol.AbstractInvoker.waitForResultIfSync(AbstractInvoker.java:282) ~~       at org.apache.dubbo.rpc.protocol.AbstractInvoker.invoke(AbstractInvoker.java:185) ~~    at org.apache.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:70) ~~       at org.apache.dubbo.rpc.proxy.InvocationUtil.invoke(InvocationUtil.java:55) ~~  at org.apache.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:75) ~~      at org.apache.dubbo.metadata.MetadataServiceDubboProxy0.getMetadataInfo(MetadataServiceDubboProxy0.java) ~~     at org.apache.dubbo.registry.client.metadata.MetadataUtils.getRemoteMetadata(MetadataUtils.java:171) ~~         at org.apache.dubbo.registry.client.AbstractServiceDiscovery.getRemoteMetadata(AbstractServiceDiscovery.java:178) ~~    at org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener.lambda$doOnEvent$2(ServiceInstancesChangedListener.java:158) ~~      at java.base/java.util.Optional.orElseGet(Optional.java:369) ~~         at org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener.doOnEvent(ServiceInstancesChangedListener.java:158) ~~       at org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener.onEvent(ServiceInstancesChangedListener.java:112) ~~         at org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener$AddressRefreshRetryTask.run(ServiceInstancesChangedListener.java:488) ~~     at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~~         at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~~        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~~  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~~         at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~~         at java.base/java.lang.Thread.run(Thread.java:829) ~~ Caused by: java.util.concurrent.ExecutionException: org.apache.dubbo.rpc.StatusRpcException: UNKNOWN : unknown ~~ java.lang.NullPointerException ~~  ~~ RemoteAddress:10.70.33.251:50051 ~~       at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395) ~~    at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2022) ~~        at org.apache.dubbo.rpc.AsyncRpcResult.get(AsyncRpcResult.java:195) ~~   at org.apache.dubbo.rpc.protocol.AbstractInvoker.waitForResultIfSync(AbstractInvoker.java:264) ~~       ... 18 more ~~ Caused by: org.apache.dubbo.rpc.StatusRpcException: UNKNOWN : unknown ~~ java.lang.NullPointerException ~~  ~~ RemoteAddress:10.70.33.251:50051 ~~       at org.apache.dubbo.rpc.TriRpcStatus.asException(TriRpcStatus.java:214) ~~      at org.apache.dubbo.rpc.protocol.tri.DeadlineFuture.doReceived(DeadlineFuture.java:134) ~~     at org.apache.dubbo.rpc.protocol.tri.DeadlineFuture.lambda$received$0(DeadlineFuture.java:91) ~~        at org.apache.dubbo.common.threadpool.ThreadlessExecutor$RunnableWrapper.run(ThreadlessExecutor.java:184) ~~     at org.apache.dubbo.common.threadpool.ThreadlessExecutor.waitAndDrain(ThreadlessExecutor.java:103) ~~   at org.apache.dubbo.rpc.AsyncRpcResult.get(AsyncRpcResult.java:193) ~~  ... 19 more
    
    type/question 
    opened by zhouyu00 1
  • Enhance service discovery update interval

    Enhance service discovery update interval

    What is the purpose of the change

    Try update service discovery for each 1s

    • When application is starting, refresh each 30s
    • When service is updating, refresh each 5s

    Brief changelog

    Verifying this change

    Checklist

    • [x] Make sure there is a GitHub_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GitHub issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
    • [ ] Each commit in the pull request should have a meaningful subject line and body.
    • [ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
    • [ ] Check if is necessary to patch to Dubbo 3 if you are work on Dubbo 2.7
    • [ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
    • [ ] Add some description to dubbo-website project if you are requesting to add a feature.
    • [ ] GitHub Actions works fine on your own branch.
    • [ ] If this contribution is large, please follow the Software Donation Guide.
    opened by AlbumenJ 2
Releases(dubbo-2.7.20)
  • dubbo-2.7.20(Dec 21, 2022)

    What's Changed

    • Fix Nacos ServiceName error by @AlbumenJ in https://github.com/apache/dubbo/pull/11180
    • Add router fail fast option (Backport #9388) by @AlbumenJ in https://github.com/apache/dubbo/pull/11188

    Full Changelog: https://github.com/apache/dubbo/compare/dubbo-2.7.19...dubbo-2.7.20

    Source code(tar.gz)
    Source code(zip)
  • dubbo-3.2.0-beta.3(Dec 16, 2022)

    What's Changed

    Feature

    • JsonUtil jackson impl by @JavaHello in https://github.com/apache/dubbo/pull/10970
    • Enhance logger adapter to use a configured logger by @AlbumenJ in https://github.com/apache/dubbo/pull/10952
    • Support client flowcontrol by @asa3311 in https://github.com/apache/dubbo/pull/11029
    • Add dubbo metrics to springboot endpoints by @songxiaosheng in https://github.com/apache/dubbo/pull/10997
    • Add dubbo metrics AutoConfiguration.imports for Spring Boot 3 (related to #10997) by @gitchenjh in https://github.com/apache/dubbo/pull/11062
    • Support dump thread switch and directory config by @CrazyHZM in https://github.com/apache/dubbo/pull/10955
    • Support xdsroute parse by @haoyann in https://github.com/apache/dubbo/pull/10956
    • Support anonymous qos command access by @Koooooo-7 in https://github.com/apache/dubbo/pull/11076
    • Adaptive loadbalance by @ningboliu in https://github.com/apache/dubbo/pull/10745

    Bugfix

    • Fix ApplicationConfig.enableFileCache default value is not true by @gitchenjh in https://github.com/apache/dubbo/pull/11008
    • fix MetericsService resource location bug by @songxiaosheng in https://github.com/apache/dubbo/pull/11056
    • Enhance isolate executor by @AlbumenJ in https://github.com/apache/dubbo/pull/11069
    • Read default prefer serialization from serialization first by @AlbumenJ in https://github.com/apache/dubbo/pull/11024
    • Fix triple default version by @AlbumenJ in https://github.com/apache/dubbo/pull/11068
    • Fix native reflect-config.json by @CrazyHZM in https://github.com/apache/dubbo/pull/11125

    Performance Optimization

    • optimization netty server connection management by @nannanfighting in https://github.com/apache/dubbo/pull/11123

    Code Enhancement

    Releates PRs: #10976, #11004, #11005, #11099, #11063

    Note: This release contains all of the changes of dubbo-3.1.4, please see https://github.com/apache/dubbo/releases/tag/dubbo-3.1.4

    Contributors

    Dubbo would like to thank the following contributors for their contributions to this release: @AlbumenJ, @asa3311, @conghuhu, @CrazyHZM, @gitchenjh, @haoyann, @JavaHello, @Koooooo-7, @nannanfighting, @ningboliu, @shanuo0312, @songxiaosheng, @tonycody, @XDanwar

    New Contributors

    • @JavaHello made their first contribution in https://github.com/apache/dubbo/pull/10970
    • @songxiaosheng made their first contribution in https://github.com/apache/dubbo/pull/10997
    • @Koooooo-7 made their first contribution in https://github.com/apache/dubbo/pull/11051
    • @ningboliu made their first contribution in https://github.com/apache/dubbo/pull/10745
    • @XDanwar made their first contribution in https://github.com/apache/dubbo/pull/11063

    Full Changelog: https://github.com/apache/dubbo/compare/dubbo-3.2.0-beta.2...dubbo-3.2.0-beta.3

    Source code(tar.gz)
    Source code(zip)
  • dubbo-3.1.4(Dec 16, 2022)

    What's Changed

    Feature

    • Dubbo QoS support foreign ip whitelist. by @Koooooo-7 in https://github.com/apache/dubbo/pull/11051

    Bugfix

    • Fixed metrics collection getting wrong method name when generalize called by @twz007 in https://github.com/apache/dubbo/pull/11012
    • Fix zookeeper update service name failed when create by @AlbumenJ in https://github.com/apache/dubbo/pull/11036
    • Fix data being updated by default ticket, follow #11036 by @AlbumenJ in https://github.com/apache/dubbo/pull/11050
    • Adjust the logic of timeout, fix triple about timeout countdown function problem by @CrazyHZM in https://github.com/apache/dubbo/pull/11030
    • Add NPE and empty list check in AwareClusterInvoker#doInvoke. by @IncrementalRefinement in https://github.com/apache/dubbo/pull/11046
    • Fixes #11044,solve remoteApplicationName is null, in mesh mode with triple by @gold-fisher in https://github.com/apache/dubbo/pull/11058
    • Fix native image compile failure and run binary package failure by @CrazyHZM in https://github.com/apache/dubbo/pull/11066
    • Fix ssl npe by @CrazyHZM in https://github.com/apache/dubbo/pull/11093
    • Fix diagnostics log message errors by @CrazyHZM in https://github.com/apache/dubbo/pull/11103
    • Fix MetadataReportConfig being valid when pre config by @AlbumenJ in https://github.com/apache/dubbo/pull/11110
    • Fix dubbo.reference not work in 3.x by @AlbumenJ in https://github.com/apache/dubbo/pull/11109
    • Fix TimeoutCountDown objects being passed through and support for method-level configuration of cut-off timeout-count by @CrazyHZM in https://github.com/apache/dubbo/pull/11120
    • add more information when zk not connected (#11057) by @cnjxzhao in https://github.com/apache/dubbo/pull/11122
    • Fix classloader bing override when setting interface class by @AlbumenJ in https://github.com/apache/dubbo/pull/11106
    • Fix timeout being cached in InstanceAddressURL by @AlbumenJ in https://github.com/apache/dubbo/pull/11041
    • Fix tri filter onError by @EarthChen in https://github.com/apache/dubbo/pull/11133
    • Fix zk remove other app's instance listeners when mapping update by @AlbumenJ in https://github.com/apache/dubbo/pull/11137

    FAQ

    Handle error log with error code in #11016, #11054, #11065

    Code Enhancement

    Releates PRs: #10991, #10995, #11000, #11034, #11035, #11037, #11079, #11102, #11084, #11064, #11075

    Dependency Upgrade

    • Update fastjson2: 2.0.14 -> 2.0.21 #11131
    • Update resteasy-jaxrs: 3.0.19.Final -> 3.0.20.Final #11071

    Contributors

    Dubbo would like to thank the following contributors for their contributions to this release: @cnjxzhao, @CrazyHZM, @EarthChen, @gold-fisher, @IncrementalRefinement, @Koooooo-7, @ShenFeng312, @tonycody, @twz007, @win120a, @wlazjr

    New Contributors

    • @twz007 made their first contribution in https://github.com/apache/dubbo/pull/11012
    • @IncrementalRefinement made their first contribution in https://github.com/apache/dubbo/pull/11046
    • @gold-fisher made their first contribution in https://github.com/apache/dubbo/pull/11058
    • @wlazjr made their first contribution in https://github.com/apache/dubbo/pull/11084
    • @ShenFeng312 made their first contribution in https://github.com/apache/dubbo/pull/11102

    Full Changelog: https://github.com/apache/dubbo/compare/dubbo-3.1.3...dubbo-3.1.4

    Source code(tar.gz)
    Source code(zip)
  • dubbo-2.7.19(Dec 6, 2022)

    What's Changed

    • Fix nacos registry randomly throws no provider exception due to legacy service names
    • Add system properties to support allow non-serializable class

    New Contributors

    • @JiHongYuan made their first contribution in https://github.com/apache/dubbo/pull/10674
    • @hujun-w-2 made their first contribution in https://github.com/apache/dubbo/pull/11038

    Full Changelog: https://github.com/apache/dubbo/compare/dubbo-2.7.18...dubbo-2.7.19

    Source code(tar.gz)
    Source code(zip)
  • dubbo-3.2.0-beta.2(Nov 22, 2022)

    What's Changed

    • support encode in user thread, optimize decode in user thread by @icodening in https://github.com/apache/dubbo/pull/10854
    • Support netty3 and other transporters in port unification by @asa3311 in https://github.com/apache/dubbo/pull/10886
    • Use user defined providedBy first by @owen200008 in https://github.com/apache/dubbo/pull/10872
    • Support istio first-party-jwt by @AlbumenJ in https://github.com/apache/dubbo/pull/10890
    • Remove fastjson and gson transitive dependency by @AlbumenJ in https://github.com/apache/dubbo/pull/10792
    • Support appResponse not transitive pass by @aamingaa in https://github.com/apache/dubbo/pull/10798
    • Set Fastjson2 as default by @AlbumenJ in https://github.com/apache/dubbo/pull/10914
    • Add some logs related with directory notification by @AlbumenJ in https://github.com/apache/dubbo/pull/10926
    • Fix early update directory by @AlbumenJ in https://github.com/apache/dubbo/pull/10925
    • Disable empty protection by default by @AlbumenJ in https://github.com/apache/dubbo/pull/10940
    • Update spi for native code by @CrazyHZM in https://github.com/apache/dubbo/pull/10951
    • Support plain text for xds channel by @asa3311 in https://github.com/apache/dubbo/pull/10947
    • Support nacos batch register by @AlbumenJ in https://github.com/apache/dubbo/pull/10942
    • Support for Spring Framework 6 and Spring Boot 3 by @weixsun in https://github.com/apache/dubbo/pull/10941

    Code style enhance by @conghuhu, @shanuo0312 in https://github.com/apache/dubbo/pull/10819, https://github.com/apache/dubbo/pull/10976, https://github.com/apache/dubbo/pull/10948

    Note: This release contains all of the changes of dubbo-3.1.3, please see https://github.com/apache/dubbo/releases/tag/dubbo-3.1.3

    New Contributors

    • @weixsun made their first contribution in https://github.com/apache/dubbo/pull/10941

    Full Changelog: https://github.com/apache/dubbo/compare/dubbo-3.2.0-beta.1...dubbo-3.2.0-beta.2

    Source code(tar.gz)
    Source code(zip)
  • dubbo-3.1.3(Nov 22, 2022)

    What's Changed

    • Revert #9645 to support filter when local invoke by @AlbumenJ in https://github.com/apache/dubbo/pull/10707
    • Support protocol properties configure to Metadata Service by @a364176773 in https://github.com/apache/dubbo/pull/10855
    • Error code enhancement by @cnjxzhao in https://github.com/apache/dubbo/pull/10869
    • Support consistent hash load balance when gerenic invoke by @nobodyw-cell in https://github.com/apache/dubbo/pull/10799
    • Fix dubbo get wrong return type when generic impl invoke by @AlbumenJ in https://github.com/apache/dubbo/pull/10891
    • Fix unexport() throws NPE when register fail. by @pandaapo in https://github.com/apache/dubbo/pull/10893
    • Support try get available port for Metadata Service by @pandaapo in https://github.com/apache/dubbo/pull/10846
    • Fix MetadataService method order to distint service info by @AlbumenJ in https://github.com/apache/dubbo/pull/10922
    • Port Unification is disabled by default, and the spi key implemented by Netty4 port unification is changed by @CrazyHZM in https://github.com/apache/dubbo/pull/10894
    • Revert #8755 to prevent safe gard exception by @AlbumenJ in https://github.com/apache/dubbo/pull/10938
    • Remove guava usage in nacos registry by @AlbumenJ in https://github.com/apache/dubbo/pull/10945
    • Remove NacosInstanceManageUtil by @AlbumenJ in https://github.com/apache/dubbo/pull/10949
    • Fix potential URL NPE by @wxbty in https://github.com/apache/dubbo/pull/10921
    • Fix the warning problem when invokerUrls is checked by @haoxz11 in https://github.com/apache/dubbo/pull/10937

    Code style enhance by @zhangzq7, @EarthChen, @BurningCN in https://github.com/apache/dubbo/pull/10847, https://github.com/apache/dubbo/pull/10818, https://github.com/apache/dubbo/pull/10881

    New Contributors

    • @zhangzq7 made their first contribution in https://github.com/apache/dubbo/pull/10847
    • @nobodyw-cell made their first contribution in https://github.com/apache/dubbo/pull/10799
    • @wxbty made their first contribution in https://github.com/apache/dubbo/pull/10921
    • @haoxz11 made their first contribution in https://github.com/apache/dubbo/pull/10937

    Full Changelog: https://github.com/apache/dubbo/compare/dubbo-3.1.2...dubbo-3.1.3

    Source code(tar.gz)
    Source code(zip)
  • dubbo-3.2.0-beta.1(Nov 2, 2022)

    What's Changed

    Bugfix & Optimization

    Releates PRs: #10660, #10669, #10677, #10685, #10637, #10686, #10700, #10701, #10708, #10715, #10544, #10729, #10738, #10730, #10783, #10785, #10789, #10797, #10705, #10711, #10718, #10741, #10779, #10786, #10728, #10587, #10697, #10533, #10760, #10775, #10682, #10683, #10838, #10678, #10788

    Feature

    Releates PRs: #10662, #10714, #10737, #10667, #10791, #10724, #10719, #10722, #10761, #10784, #10691, #10658, #10794, #10748

    Mertic

    Releates PRs: #10622

    FAQ

    Releates PRs: #10680, #10777, #10787

    Dependency Upgrade

    • Update protobuf-java: 3.11.0 -> 3.16.3 #10702

    Contributors

    Dubbo would like to thank the following contributors for their contributions to this release: @sunchaser-lilu, @pandaapo, @JavaLionLi, @CrazyHZM, @niejian, @hboutemy, @Cyc1ops, @zhoumengyks, @wucheng1997, @AlbumenJ, @zaghost, @icodening, @ilaotan, @BurningCN, @diguage, @tonycody, @aamingaa, @EarthChen, @asa3311, @jojocodeX, @win120a, @dependabot,

    New Contributors

    • @pandaapo made their first contribution in https://github.com/apache/dubbo/pull/10669
    • @JavaLionLi made their first contribution in https://github.com/apache/dubbo/pull/10677
    • @niejian made their first contribution in https://github.com/apache/dubbo/pull/10686
    • @Cyc1ops made their first contribution in https://github.com/apache/dubbo/pull/10701
    • @tonycody made their first contribution in https://github.com/apache/dubbo/pull/10533
    • @zhoumengyks made their first contribution in https://github.com/apache/dubbo/pull/10708
    • @ilaotan made their first contribution in https://github.com/apache/dubbo/pull/10711
    • @wucheng1997 made their first contribution in https://github.com/apache/dubbo/pull/10544
    • @aamingaa made their first contribution in https://github.com/apache/dubbo/pull/10667
    • @zaghost made their first contribution in https://github.com/apache/dubbo/pull/10785

    Full Changelog: https://github.com/apache/dubbo/compare/dubbo-3.1.1...dubbo-3.2.0-beta.1

    Source code(tar.gz)
    Source code(zip)
  • dubbo-3.1.2(Nov 2, 2022)

    What's Changed

    Feature

    • Experimental support for JDK19
    • Support @AliasFor for Spring
    • Experimental support for upper header in triple
    • Add thread pool exhausted listener config Releates PRs: #10662, #10722, #10737, #10761, #10724, #10784

    FAQ

    This release will continue to improve the coverage of FAQ links. Releates PRs: #10680, #10787, #10820, #10830, #10837, #10843

    Dependency Upgrade

    • Update protobuf-java: 3.11.0 -> 3.16.3 #10702
    • Update nacos-client: 2.1.1 -> 2.1.2 #10862
    • Update snakeyaml: 1.31 -> 1.32 #10677
    • Update tomcat-embed-core: 8.5.69 -> 8.5.78 #10701
    • Update bcprov-ext-jdk15on: 1.68 -> 1.69 #10708

    Bugfix & Optimization

    Releates PRs: #10660, #10669, #10685, #10686, #10700, #10544, #10738, #10783, #10785, #10789, #10825, #10718, #10741, #10779, #10775, #10786, #10683, #10834, #10678, #10796, #10788

    Contributors

    Dubbo would like to thank the following contributors for their contributions to this release: @sunchaser-lilu, @pandaapo, @JavaLionLi, @CrazyHZM, @niejian, @hboutemy, @Cyc1ops, @zhoumengyks, @wucheng1997, @AlbumenJ, @zaghost, @win120a, @BurningCN, @tonycody, @EarthChen, @cnjxzhao, @dependabot, @nihongye

    New Contributors

    • @JavaLionLi made their first contribution in https://github.com/apache/dubbo/pull/10677
    • @niejian made their first contribution in https://github.com/apache/dubbo/pull/10686
    • @Cyc1ops made their first contribution in https://github.com/apache/dubbo/pull/10701
    • @zhoumengyks made their first contribution in https://github.com/apache/dubbo/pull/10708
    • @zaghost made their first contribution in https://github.com/apache/dubbo/pull/10785

    Full Changelog: https://github.com/apache/dubbo/compare/dubbo-3.1.1...dubbo-3.1.2

    Source code(tar.gz)
    Source code(zip)
  • dubbo-3.1.1(Sep 22, 2022)

    What's Changed

    Bugfix & Optimization

    Related PRs: #10488, #10481, #10495, #10504, #10503, #10498, #10508, #10518, #10514, #10525, #10529, #10530, #10534, #10537, #9645, #10576, #10567, #10573, #10323, #10606, #10609, #10603, #10605, #10616, #10613, #10614, #10623, #10543, #10626, #10634, #10602, #10619, #10615, #10639, #10641, #10644, #10638, #10645, #10649

    Metrics

    Related PRs: #10493, #10499, #10512, #10515, #10589

    FAQ

    Related PRs: #10500, #10516, #10519, #10522, #10523, #10521, #10527, #10536, #10538, #10540, #10542, #10546, #10561, #10566, #10568, #10599, #10598

    Contributors

    Dubbo would like to thank the following contributors for their contributions to this release: @a364176773, @AlbumenJ, @asa3311, @BurningCN, @chenyanlann, @chickenlj, @cnjxzhao, @Codegass, @conghuhu, @CrazyHZM, @guohao, @Henrik-Yao, @jojocodeX, @JooKS-me, @ms20hj, @owen200008, @qinliujie, @sashashura, @sunchaser-lilu, @TrueAbc, @win120a, @wuwen5, @xh1202, @yuchu01

    Dependency Upgrade

    • Upgrade hessian-lite version: 3.2.12 -> 3.2.13 #10629
    • Upgrade fastjson2 version: 2.0.7 -> 2.0.14 #10648
    • Upgrade snakeyaml version: 1.29 -> 1.31 #10625
    • Upgrade kubernetes-client version: 5.3.2 -> 6.1.1 #10543
    • Upgrade grpc-core version: 1.44.0 -> 1.47.0 #10567

    New Contributors

    • @Henrik-Yao made their first contribution in #10493
    • @ms20hj made their first contribution in #10495
    • @asa3311 made their first contribution in #10516
    • @sashashura made their first contribution in #10518
    • @cnjxzhao made their first contribution in #10521
    • @sunchaser-lilu made their first contribution in #10525
    • @Codegass made their first contribution in #10537
    • @jojocodeX made their first contribution in #10589
    • @yuchu01 made their first contribution in #10641

    Full Changelog: https://github.com/apache/dubbo/compare/dubbo-3.1.0...dubbo-3.1.1

    Source code(tar.gz)
    Source code(zip)
  • dubbo-2.7.18(Sep 22, 2022)

    What's Changed

    • [2.7] Remove useless toString in Timeout Filter by @AlbumenJ in https://github.com/apache/dubbo/pull/10531
    • Fixes #9913, rmi protocol supoort group and version by @xielongfei in https://github.com/apache/dubbo/pull/9951
    • [2.7] Update hessian version by @AlbumenJ in https://github.com/apache/dubbo/pull/10630
    • Fix #10631 Fix PojoUtils support localdatetime,lcaldate,localtime serializable and deserialize by @wuwen5 in https://github.com/apache/dubbo/pull/10632

    Dependency Upgrade

    • Upgrade hessian-lite version: 3.2.12 -> 3.2.13 https://github.com/apache/dubbo/pull/10630

    New Contributors

    • @xielongfei made their first contribution in https://github.com/apache/dubbo/pull/9951

    Full Changelog: https://github.com/apache/dubbo/compare/dubbo-2.7.17...dubbo-2.7.18

    Source code(tar.gz)
    Source code(zip)
  • dubbo-3.0.12(Sep 22, 2022)

    What's Changed

    • optimize AccessLogFilter by @a364176773 in https://github.com/apache/dubbo/pull/10488
    • Add some test cases and optimizations by @BurningCN in https://github.com/apache/dubbo/pull/10481
    • Init deadlock by @owen200008 in https://github.com/apache/dubbo/pull/10503
    • [3.0] Remove useless toString in Timeout Filter by @AlbumenJ in https://github.com/apache/dubbo/pull/10530
    • Local references support mergeable by @CrazyHZM in https://github.com/apache/dubbo/pull/9645
    • fix #10541, save subscribed dataIds for unsubscription. by @chickenlj in https://github.com/apache/dubbo/pull/10573
    • Update hessian-lite version by @AlbumenJ in https://github.com/apache/dubbo/pull/10629
    • Fix broadcast context being cleared by @AlbumenJ in https://github.com/apache/dubbo/pull/10619
    • Fix ContextFilter not cleanup thread by @AlbumenJ in https://github.com/apache/dubbo/pull/10615
    • Fix NPE when using tri as metadata service protocol by @AlbumenJ in https://github.com/apache/dubbo/pull/10639
    • Fix timeout type cast exception by @CrazyHZM in https://github.com/apache/dubbo/pull/10644

    Dependency Upgrade

    • Upgrade hessian-lite version: 3.2.12 -> 3.2.13 https://github.com/apache/dubbo/pull/10629

    Full Changelog: https://github.com/apache/dubbo/compare/dubbo-3.0.11...dubbo-3.0.12

    Source code(tar.gz)
    Source code(zip)
  • dubbo-3.1.0(Aug 17, 2022)

    This is a brand new version of Dubbo 3, including xDS support, kubernetes native support, Fastjson2 support...

    Dubbo 3.1 includes the following features:

    • Sidecar mesh. See https://dubbo.apache.org/zh/overview/tasks/mesh/dubbo-mesh/ for instructions.
    • xDS proxyless mesh. See https://dubbo.apache.org/zh/overview/tasks/mesh/proxyless/ for instructions.
    • Error code Troubleshooting Documentation Guidelines. See https://dubbo.apache.org/zh/docs3-v2/java-sdk/faq/intro/ for instructions.
    • Fastjson2 support. Manually enable by specifying serialization to fastjson2. See https://github.com/alibaba/fastjson2 for instructions.
    • Port Unification support. Supports binding various protocols to a signal port.
    • Dubbo Reactive stream with project reactor.

    Upgrade compatibility: https://dubbo.apache.org/zh/docs3-v2/java-sdk/upgrades-and-compatibility/3.0-to-3.1-compatibility-guide/

    Full Changelog: https://github.com/apache/dubbo/compare/dubbo-3.0.11...dubbo-3.1.0

    Source code(tar.gz)
    Source code(zip)
  • dubbo-3.0.11(Aug 17, 2022)

    Bugfix & Optimization

    Related PRs: #10332, #10333, #10311, #10350, #10355, #10351, #10359, #10364, #10349, #10371, #10354, #10369, #10372, #10376, #10370, #10383, #10338, #10390, #10389, #10400, #10404, #10409, #10411, #10417, #10418, #10432, #10413, #10441, #10439, #10444, #10442, #10445, #10455, #10457, #10414, #10412, #10173, #10447, #10462, #10468, #10478 Contributors: @AlbumenJ, @Bentley-William, @BurningCN, @TianCheng88, @TigerTurbo, @chenziqiang666, @chickenlj, @jk-tonycui, @liufeiyu1002, @monkeyWie, @owen200008, @stonelion, @victory460, @win120a, @xiaomiusa87

    Dependency Upgrade

    • Upgrade kubernetes-client version: 5.3.0 -> 5.3.2 https://github.com/apache/dubbo/pull/10324

    New Contributors

    • @victory460 made their first contribution in https://github.com/apache/dubbo/pull/10400
    • @TianCheng88 made their first contribution in https://github.com/apache/dubbo/pull/10442
    • @xiaomiusa87 made their first contribution in https://github.com/apache/dubbo/pull/10455
    • @jk-tonycui made their first contribution in https://github.com/apache/dubbo/pull/10412

    Full Changelog: https://github.com/apache/dubbo/compare/dubbo-3.0.10...dubbo-3.0.11

    Source code(tar.gz)
    Source code(zip)
  • dubbo-2.7.17(Aug 16, 2022)

    What's Changed

    • Interrupt current thread when InterruptException occur by @happytimor in https://github.com/apache/dubbo/pull/10164
    • Remove to rpcInvocation string by @AlbumenJ in https://github.com/apache/dubbo/pull/10460
    • Fix Nacos aggregate listen by @AlbumenJ in https://github.com/apache/dubbo/pull/10467

    Full Changelog: https://github.com/apache/dubbo/compare/dubbo-2.7.16...dubbo-2.7.17

    Source code(tar.gz)
    Source code(zip)
  • dubbo-3.0.10(Jul 16, 2022)

    Bugfix & Optimization

    Related PRs: #10180, #10190, #10194, #10203, #10199, #10158, #10211, #10244, #10233, #10245, #10252, #10250, #10247, #10193, #10262, #10200, #10270, #10271, #10275, #10274, #10276, #10279, #10280, #10281, #10284, #10291, #10295, #10299, #10293, #10302, #10301, #10305, #10225, #10306, #10309, #10308, #10317, #10055, #10110 Contributors: @AlbumenJ, @Bentley-William, @BurningCN, @cheese8, @chenziqiang666, @CrazyHZM, @crazyStar00, @EarthChen, @guohao, @happytimor, @icodening, @juzi214032, @sagexueqi, @stonelion, @Trying-hc, @wangchengming666, @xh1202, @YoungHu, @zhaoyunxing92

    Feature

    • [3.0-Triple] Support reflection api by @guohao in https://github.com/apache/dubbo/pull/10168

    New Contributors

    • @hdyztmdqd made their first contribution in https://github.com/apache/dubbo/pull/10158
    • @zhaoyunxing92 made their first contribution in https://github.com/apache/dubbo/pull/10211
    • @cheese8 made their first contribution in https://github.com/apache/dubbo/pull/10244
    • @xh1202 made their first contribution in https://github.com/apache/dubbo/pull/10252
    • @sagexueqi made their first contribution in https://github.com/apache/dubbo/pull/10247
    • @Trying-hc made their first contribution in https://github.com/apache/dubbo/pull/10281
    • @crazyStar00 made their first contribution in https://github.com/apache/dubbo/pull/10225
    • @chenziqiang666 made their first contribution in https://github.com/apache/dubbo/pull/10306

    Full Changelog: https://github.com/apache/dubbo/compare/dubbo-3.0.9...dubbo-3.0.10

    Source code(tar.gz)
    Source code(zip)
  • dubbo-2.7.16(Jul 1, 2022)

    Feature

    • Feat: consumer support specify serialization type by @jessin20161124 in https://github.com/apache/dubbo/pull/9550
    • Feat: telnet invoke command with context argument. by @stonelion in https://github.com/apache/dubbo/pull/9974

    Bugfix

    • Fix callback timeout by @wuwen5 in https://github.com/apache/dubbo/pull/9463
    • Fixes #9086 to solve race condition issue. by @zrlw in https://github.com/apache/dubbo/pull/9588
    • Fix a problem where tag routing does not work when using static tags by @wuwen5 in https://github.com/apache/dubbo/pull/9512
    • Fix the problem of wrong number of retries in failback mode by @juzi214032 in https://github.com/apache/dubbo/pull/9525
    • Fix @DubboReference parameters do not put into methodParameters correctly by @wangzhenxyz1 in https://github.com/apache/dubbo/pull/9599
    • Fix getAttchments return copy map problem. by @horizonzy in https://github.com/apache/dubbo/pull/9571
    • Fix ExtensionLoader can not inject by type properly. by @wangzhenxyz1 in https://github.com/apache/dubbo/pull/9187
    • Fix lazy client share_executor is null by @owen200008 in https://github.com/apache/dubbo/pull/9701
    • Fix concurrent modification exception of stated urls by @chickenlj in https://github.com/apache/dubbo/pull/9779
    • Set registry id to auto-generated metada by @chickenlj in https://github.com/apache/dubbo/pull/9782
    • Fix forking npe by @codeimport in https://github.com/apache/dubbo/pull/9613
    • Fix 2.7 multi registry by @chickenlj in https://github.com/apache/dubbo/pull/9787
    • Fix stubevent can't work by @xxxcrel in https://github.com/apache/dubbo/pull/9825
    • Fix #9847 by @wangchengming666 in https://github.com/apache/dubbo/pull/9848
    • Fix issue#9953 by @106umao in https://github.com/apache/dubbo/pull/9978
    • fix issue#9922, merge the provider side parameters exclude tag by @zhaoguhong in https://github.com/apache/dubbo/pull/9933
    • Fix ZookeeperDynamicConfiguration remove cache listener mistake by @wangchengming666 in https://github.com/apache/dubbo/pull/10106
    • Fix metadata-report support a separate configuration username and password by @zhaoguhong in https://github.com/apache/dubbo/pull/9921
    • Fix can't authenticate by username and password when use Nacos by @xxxcrel in https://github.com/apache/dubbo/pull/9941
    • Fixed the problem that the service was offline for a long time without re-registration by @icodening in https://github.com/apache/dubbo/pull/10182
    • Adjusted the code to make it cleaner. by @MartianQiu in https://github.com/apache/dubbo/pull/10208
    • Fix LFUCache Memory leak problem by @zhaoguhong in https://github.com/apache/dubbo/pull/10086
    • Fix memory leak by @icodening in https://github.com/apache/dubbo/pull/10231

    Dependency Upgrade

    • Upgrade log4j2 version: 2.17.0 -> 2.17.2 #9791
    • Upgrade log4j version: 1.2.16 -> 1.2.17 #9791
    • Upgrade logback version: 1.2.2 -> 1.2.11 #9791
    • Upgrade fastjson version: 1.2.70 -> 1.2.83 #10189

    New Contributors

    • @liufarui made their first contribution in https://github.com/apache/dubbo/pull/9511
    • @wangzhenxyz1 made their first contribution in https://github.com/apache/dubbo/pull/9599
    • @hadley0828 made their first contribution in https://github.com/apache/dubbo/pull/8026
    • @106umao made their first contribution in https://github.com/apache/dubbo/pull/9978
    • @zhaoguhong made their first contribution in https://github.com/apache/dubbo/pull/9933
    • @sunshujie1990 made their first contribution in https://github.com/apache/dubbo/pull/9926
    • @icodening made their first contribution in https://github.com/apache/dubbo/pull/10182
    • @Bentley-William made their first contribution in https://github.com/apache/dubbo/pull/10226
    • @kefate made their first contribution in https://github.com/apache/dubbo/pull/10251

    Full Changelog: https://github.com/apache/dubbo/compare/dubbo-2.7.15...dubbo-2.7.16

    Source code(tar.gz)
    Source code(zip)
  • dubbo-3.0.9(Jun 20, 2022)

    Bugfix

    Invocation & Configuration Related: https://github.com/apache/dubbo/pull/10026, https://github.com/apache/dubbo/pull/10036, https://github.com/apache/dubbo/pull/10050, https://github.com/apache/dubbo/pull/10140, https://github.com/apache/dubbo/pull/10047, https://github.com/apache/dubbo/pull/10027, https://github.com/apache/dubbo/pull/10160, https://github.com/apache/dubbo/pull/10152

    Registry Related: https://github.com/apache/dubbo/pull/10049, https://github.com/apache/dubbo/pull/10048, https://github.com/apache/dubbo/pull/10080, https://github.com/apache/dubbo/pull/10119, https://github.com/apache/dubbo/pull/10127, https://github.com/apache/dubbo/pull/9988, https://github.com/apache/dubbo/pull/10134, https://github.com/apache/dubbo/pull/10161, https://github.com/apache/dubbo/pull/10148, https://github.com/apache/dubbo/pull/10177

    Feature

    • Add shutdown hook ignore support by @AlbumenJ in https://github.com/apache/dubbo/pull/10029
    • Optimize Connection by @wangchengming666 in https://github.com/apache/dubbo/pull/9954
    • Add some logger related command by @AlbumenJ in https://github.com/apache/dubbo/pull/10132
    • Enhance ls command by @AlbumenJ in https://github.com/apache/dubbo/pull/10126
    • Support for ibm J9 by @lyh200 in https://github.com/apache/dubbo/pull/10033
    • Improve compressed URL param performance by @AlbumenJ in https://github.com/apache/dubbo/pull/10125
    • Speed up application start up time by @qinliujie in https://github.com/apache/dubbo/pull/10109
    • Triple support optimizer by @EarthChen in https://github.com/apache/dubbo/pull/10147
    • Exact json utils by @AlbumenJ in https://github.com/apache/dubbo/pull/10156
    • RestProtocol opt, share client pool among services and avoid potential memory leak. by @chickenlj in https://github.com/apache/dubbo/pull/10023
    • Add MemorySafeLinkedBlockingQueue by @dragon-zhang in https://github.com/apache/dubbo/pull/10021

    Dependency Upgrade

    • Upgrade gson version: 2.8.5 -> 2.8.9 https://github.com/apache/dubbo/pull/10064
    • Upgrade nacos version: 2.0.4 -> 2.1.0 https://github.com/apache/dubbo/pull/10024
    • Upgrade fastjson version: 1.2.70 -> 1.2.83 https://github.com/apache/dubbo/pull/10099

    New Contributors

    • @yswdqz made their first contribution in https://github.com/apache/dubbo/pull/10036
    • @kaiyaok2 made their first contribution in https://github.com/apache/dubbo/pull/9987
    • @lyh200 made their first contribution in https://github.com/apache/dubbo/pull/10033

    Full Changelog: https://github.com/apache/dubbo/compare/dubbo-3.0.8...dubbo-3.0.9

    Source code(tar.gz)
    Source code(zip)
  • dubbo-3.0.8(May 11, 2022)

    Bugfixes & Enhancements

    • Triple Protocol.
      • Fix possible memory leak #9919
      • Use separate ThreadPool under multiple protocol circumstances #10018
      • Stub compiler enhancement
      • Shutdown process optimization #9938
    • Service Discovery.
      • Fix interface-app mapping #9992
      • Fix warmup does not work on Consumer side #10022, #9990
      • Fix OfflineApp cannot update registry when revision becomes 0 #9986
      • Fallback to another address model in APPLICATION_FIRST mode when current address model becomes unavailable #9964
      • Refactor metadata exchange process to support certain registry patterns, such as k8s and dns #9904
      • Add 'exclude' filtering policy for instance-level params filter extension #10015
    • Others
      • Distinguish singleton and prototype status of ReferenceConfig instance when using together with Cache #10012
      • Fix SPI extension compatibility issue when upgrading from 2.6 or lower versions to 3.x #9977
      • Change global migration key to 'dubbo.application.migration.step' #10006
    Source code(tar.gz)
    Source code(zip)
  • dubbo-3.0.7(Mar 28, 2022)

    This version continues to focus on stability improvement of Dubbo3. For details of bugfixes and enhancements , please check here milestone 3.0.7

    Bugfixes & Enhancements

    • Curator and Zookeeper extensions related issues, #9746, #9749, #9597
    • Service Discovery enhance, #9726, #9754, #9799, #9742, #9820, #9784
    • Triple protocol supports native stub generator, #9822
    • Optimize shutdown process, #9747
    • Optimize default registration behavior of Nacos, does not register consumer URL by default, #9827
    • Fix zone-aware and weight policy not work for multiple registries scenario, #9680, #9786
    • Fix consumer side service group not work as expected, #9818
    • Fix possible RpcContext contamination, reported by skywalker, #9666
    Source code(tar.gz)
    Source code(zip)
  • dubbo-3.0.6(Feb 28, 2022)

    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. https://github.com/apache/dubbo/pull/9704
    • Fix QoS endpoint /ready and /startup does not work well. https://github.com/apache/dubbo/issues/9634
    • Fix Spring bean cannot be registered into SPI instance. https://github.com/apache/dubbo/issues/8792
    • Fix undetermined execution order of callbacks registered to ResponseFuture. https://github.com/apache/dubbo/issues/9461
    • Fix multiple metadata reporter support. https://github.com/apache/dubbo/issues/9322

    Enhancements

    • Service Discovery model
      • refactored meta impl
      • cache support https://github.com/apache/dubbo/pull/9684
      • concurrency https://github.com/apache/dubbo/pull/9684
    • Triple protocol
    • JDK 17 support
    • Support send.reconnect configurable https://github.com/apache/dubbo/pull/9195

    Reported Curator5 compatibility issue about this version https://github.com/apache/dubbo/issues/9750

    Source code(tar.gz)
    Source code(zip)
  • dubbo-3.0.5(Dec 26, 2021)

    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 https://github.com/apache/dubbo/issues/9380 for details
    Source code(tar.gz)
    Source code(zip)
  • dubbo-2.7.15(Dec 22, 2021)

    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
    Source code(tar.gz)
    Source code(zip)
  • dubbo-2.6.12(Dec 22, 2021)

  • dubbo-3.0.4(Oct 19, 2021)

    :star2: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)

    :rocket: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)

    :rocket: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)

    :hammer:Dependency Changes

    • Upgrade curator version:4.1.0 -> 4.2.0(#8994)
    Source code(tar.gz)
    Source code(zip)
  • dubbo-3.0.3(Sep 19, 2021)

    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)
    Source code(tar.gz)
    Source code(zip)
  • dubbo-2.7.14(Sep 14, 2021)

    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
    Source code(tar.gz)
    Source code(zip)
  • dubbo-2.6.11(Sep 14, 2021)

    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)
    Source code(tar.gz)
    Source code(zip)
  • dubbo-3.0.2.1(Aug 19, 2021)

    This is a bugfix version of 3.0.2. Exactly the same as version 3.0.2, except for the following changes.

    Bugfix

    • 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)
    Source code(tar.gz)
    Source code(zip)
  • dubbo-3.0.2(Aug 17, 2021)

    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
    Source code(tar.gz)
    Source code(zip)
  • dubbo-2.7.13(Aug 1, 2021)

    Features

    • Add the file parameter to MetadataReportBuilder(#8031)
    • Delay export server should print stack trace if there are exception occur. (#8125)
    • Increase the service detection logic on the consumer side of redisRegistry (#7929)
    • support dubbo:annotation element tag in xml when using legacy namespace. (#7995)
    • support disable shutdown hook (#8369)

    BugFixs

    • fix instance change event name format problem. (#8346)
    • fix String.format lack of arg which is from BroadcastClusterInvoker link (#8348)
    • disable telnet by default and fix ut, reset resources (#8239)
    • annotation cannt be serializable,so change to String (#7908)
    • Fix the issue that the ReferenceConfigCache#destroy method does not call proxy.$destroy() (#8065)
    • fix multi-registry bug (#8034)
    • [Dubbo-6720] fix bug same interface unexport and export fail. also support hotload service (#6720)
    • Fix urls may be null, and NullPointerException will be thrown in ConfigValidationUtils (#8020) (#8021)
    • Fix duplicated import (#8015)
    • Fix spring spi extension keeps printing warn log during starting. (#6144)
    • Dubbo-8172]Not shuwdown ExecutorService when DefaultFuture. closeChannel() (#8188)

    Optimization

    • optimize ShortestResponseLoadBalance active param (#8318)
    • Set specific serializer for native hessian and hessian rpc protocol (#8238)
    • Enhance metadata report config. (#8268)
    • for compatible nacos server lower version, we should check the response from nacos server is null. (#8229)
    • use service name mapping key to avoid logic conflict. (#8184)
    • Tests transaction of callback method #8098 (#8120)
    • improve the code of URLStrParser.java (#8085)
    • remove redundant class: \common\utils\ClassHelper.java (#8084)
    • EventPublishingServiceDiscovery add error log (#8066)
    • add cache for scan result. (#7477) (#8057)
    • Remove needless toString convert (#8092)
    • optimize generic filter (#8067)
    • Ignore invalid MetadataReportConfig (#8068)
    • Optimize StatusTelnetHandler code and extract constants (#8041)
    • Remove redundant code in ServiceConfig#checkAndUpdateSubConfigs method (#8036)
    • Optimize DubboProtocol code and extract constants (#8004)
    • Optimize URL#addParameters method to reuse existing methods (#8005)
    • De-duplicate the filter returned by the getActivateExtension method (#7600)
    • throw exception on path+version not found when decoding request (#8357)

    Code Improvement

    Thanks for these contribution to improve stability of Apache Dubbo.

    #8264, #8258, #8136, #8141, #8114, #8023, #8000, #8001, #8006, #8355

    Dependency Upgrades

    Upgrading the artifact com.alibaba.spring.spring-context-support: 1.0.11 #8217

    Source code(tar.gz)
    Source code(zip)
Owner
The Apache Software Foundation
The Apache Software Foundation
The Java gRPC implementation. HTTP/2 based RPC

gRPC-Java - An RPC library and framework gRPC-Java works with JDK 7. gRPC-Java clients are supported on Android API levels 16 and up (Jelly Bean and l

grpc 10.2k Jan 1, 2023
CustomRPC - a tool that allows you to change your discord rich presence (RPC) to a custom one

CustomRPC is a tool that allows you to change your discord rich presence (RPC) to a custom one. It also allows creating sentence sequences

null 2 May 3, 2022
A High Performance Network ( TCP/IP ) Library

Chronicle-Network About A High Performance Network library Purpose This library is designed to be lower latency and support higher throughputs by empl

Chronicle Software : Open Source 231 Dec 31, 2022
This is an open source android based Music Player application developed in Android Studio

Pulse Music An offline music player android app, with modern UI and powerful features If you liked this repo, fork it and leave a STAR. Your support m

Sharath 7 Apr 11, 2022
Apache MINA is a network application framework which helps users

Apache MINA is a network application framework which helps users develop high performance and high scalability network applications easily

The Apache Software Foundation 846 Dec 20, 2022
Short code snippets written by our open source community!

Code Examples This repository contains different code examples in different programming languages. Website https://codes.snowflakedev.org How do I con

SnowflakeDev Community ❄️ 64 Nov 13, 2022
GrimAC is an open source anticheat designed for 1.17 and supporting 1.7-1.17.

GrimAC Currently too unstable to use in production. Work is being done on a partial rewrite to simplify the code, run block place/break/interact logic

DefineOutside 511 Jan 2, 2023
Experimental Netty-based Java 16 application/web framework

Experimental Netty-based application/web framework. An example application can be seen here. Should I use this? Probably not! It's still incredibly ea

amy null 8 Feb 17, 2022
Socket.IO server implemented on Java. Realtime java framework

Netty-socketio Overview This project is an open-source Java implementation of Socket.IO server. Based on Netty server framework. Checkout Demo project

Nikita Koksharov 6k Dec 30, 2022
Telegram API Client and Telegram BOT API Library and Framework in Pure java.

Javagram Telegram API Client and Telegram Bot API library and framework in pure Java. Hello Telegram You can use Javagram for both Telegram API Client

Java For Everything 3 Oct 17, 2021
Unconventional Java code for building web servers / services without a framework.

Unconventional Java code for building web servers / services without a framework. Think dropwizard but as a seed project instead of a framework. If this project had a theme it would be break the rules but be mindful of your decisions.

StubbornJava 227 Nov 15, 2022
Nzyme is a free and open next-generation WiFi defense system.

Nzyme is a free and open next-generation WiFi defense system.

Lennart Koopmann 1.1k Jan 1, 2023
TCP/UDP client/server library for Java, based on Kryo

KryoNet can be downloaded on the releases page. Please use the KryoNet discussion group for support. Overview KryoNet is a Java library that provides

Esoteric Software 1.7k Jan 2, 2023
An annotation-based Java library for creating Thrift serializable types and services.

Drift Drift is an easy-to-use, annotation-based Java library for creating Thrift clients and serializable types. The client library is similar to JAX-

null 225 Dec 24, 2022
jRT measures the response time of a java application to socket-based requests

jRT Version: 0.0.1 jRT is a instrumentation tool that logs and records networking I/O operations "response times" (applicaion response time if be corr

null 45 May 19, 2022
A Java event based WebSocket and HTTP server

Webbit - A Java event based WebSocket and HTTP server Getting it Prebuilt JARs are available from the central Maven repository or the Sonatype Maven r

null 808 Dec 23, 2022
An netty based asynchronous socket library for benchion java applications

Benchion Sockets Library An netty based asynchronous socket library for benchion java applications ?? Documents ?? Report Bug · Request Feature Conten

Fitchle 3 Dec 25, 2022
Pcap editing and replay tools for *NIX and Windows - Users please download source from

Tcpreplay Tcpreplay is a suite of GPLv3 licensed utilities for UNIX (and Win32 under Cygwin) operating systems for editing and replaying network traff

AppNeta, Inc. 956 Dec 30, 2022