• Dubbo中CompletableFuture异步调用


    使用Future实现异步调用,对于无需获取返回值的操作来说不存在问题,但消费者若需要获取到最终的异步执行结果,则会出现问题:消费者在使用Future的get()方法获取返回值时被阻塞。为了解决这个问题,Dubbo又引入了CompletableFuture来实现对提供者的异步调用

    一、创建提供者10-provider-async2

    A、创建工程

    直接复制10-provider-async工程,并命名为10-provider-async2

    B、修改业务接口

    需要异步调用执行的方法返回CompletableFuture<>

    C、修改实现类

    二、 创建消费者10-consumer-async2

    A、创建工程

    直接复制10-consumer-async工程,并命名为10-consumer-async2

    B、修改业务接口

    C、修改消费者类

    直接删除同步消费者类,修改异步消费者类

    D、修改配置文件

    三、总结

    Future与CompletableFuture的对比

    • Future:Dubbo2.7.0版本之前消费者异步调用提供者的实现方式。源自于JDK5,对异步结果的获取采用了阻塞与轮询方式。
    • CompletableFuture:Dubbo2.7.0版本之后消费者异步调用提供者的实现方式。源自于JDK8,对异步结果的获取采用了回调的方式
  • 相关阅读:
    Java学习笔记二.2
    Java学习笔记二.1
    Java学习笔记一
    cookie和session笔记
    编码知识笔记
    新手前端笔记之--css盒子
    新手前端笔记之--初识css
    新手前端笔记之--必备的标签
    新手前端笔记之--初识html标签
    二叉树总结
  • 原文地址:https://www.cnblogs.com/edda/p/13260432.html
Copyright © 2020-2023  润新知