美文网首页
Dubbo的异步调用

Dubbo的异步调用

作者: 奔跑的Robi | 来源:发表于2019-08-15 15:52 被阅读0次

Dubbo调用的过程会有网络延时,处理耗时等,如果业务上对于调用结果并不实时依赖,可以使用异步调用的方式
Dubbo2.7开始所有的异步接口使用CompletableFuture为基础

直接使用异步接口方式

在服务端,先定义异步服务接口

public interface AsyncService {
    CompletableFuture<String> sayHello(String name);
}

引用服务的配置中可配置timeout

<dubbo:reference id="asyncService" timeout="10000" interface="com.alibaba.dubbo.samples.async.api.AsyncService"/>

调用过程:

// 调用直接返回CompletableFuture
CompletableFuture<String> future = asyncService.sayHello("async call request");
// 增加回调
future.whenComplete((v, t) -> {
    if (t != null) {
        t.printStackTrace();
    } else {
        System.out.println("Response: " + v);
    }
});
// 早于结果输出
System.out.println("Executed before response return.");

重载接口方式

如果代码中服务接口不想更改,可以在接口中重载一个默认方法,前提是使用jdk1.8+

public interface GreetingsService {
    String sayHi(String name);
    
    // AsyncSignal is totally optional, you can use any parameter type as long as java allows your to do that.
    default CompletableFuture<String> sayHi(String name, AsyncSignal signal) {
        return CompletableFuture.completedFuture(sayHi(name));
    }
}

注意

如果只是想异步调用,不关心返回值,可以设置return为false,减去创建Future对象的开销

<dubbo:method name="find" async="true" return="false" />

相关文章

  • Dubbo中的那些坑(二)异步调用

    Dubbo异步调用 Dubbo原生支持异步调用,但其中依然有坑。 异步调用依赖传递性 问题表现:如果consume...

  • Java进阶-Dubbo-进阶

    一、服务调用过程 1.1 服务调用方式   Dubbo 服务调用过程:   Dubbo 支持同步和异步两种调用方式...

  • Dubbo使用了CompletableFuture,实现了真异步

    Dubbo在服务调用时支持同步调用和异步调用等方式。 在Dubbo2.6版本及之前的版本在实现异步调用时存在一定的...

  • Dubbo剖析-异步调用实现

    一、前言 前面文章讲解了dubbo服务消费方异步调用使用,本文就来讲解如何实现的异步调用。 二、异步调用服务消费端...

  • Dubbo的异步调用

    Dubbo调用的过程会有网络延时,处理耗时等,如果业务上对于调用结果并不实时依赖,可以使用异步调用的方式Dubbo...

  • Dubbo异步调用

    https://developer.aliyun.com/article/608811[https://devel...

  • Dubbo 异步调用过程

    开篇 本篇是基于Dubbo-2.6.7版本的异步调用的分析,在这个过程中会涉及异步的调用过程和响应过程的分析。 文...

  • Dubbo 同步异步调用

    转载自 http://dubbo.apache.org/books/dubbo-dev-book/implemen...

  • dubbo的异步调用和异步处理

    https://gitbook.cn/books/5d72668ad9c2de3db4e8ecd3/index.h...

  • Dubbo

    Dubbo原理了解吗? Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务...

网友评论

      本文标题:Dubbo的异步调用

      本文链接:https://www.haomeiwen.com/subject/ltfgjctx.html