zoukankan      html  css  js  c++  java
  • 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,对异步结果的获取采用了回调的方式
  • 相关阅读:
    框架代码 2
    框架代码 2
    个人资料  代码
    个人资料  代码
    XHTML表单
    框架代码 1
    计算机科学与技术学习反思录(转载)
    写在Blog点击数超过50000之后...
    小笨霖英语笔记本(6)水电
    SUN服务器及Solaris Serial Console常见设置问题
  • 原文地址:https://www.cnblogs.com/edda/p/13260432.html
Copyright © 2011-2022 走看看