Dubbo异步调用(七)

本文详细介绍了Dubbo的异步调用机制,包括2.0.6+版本和2.7.0之后的变化。在2.0.6+版本中,异步调用是非阻塞的NIO调用,用户线程立即返回,通过Future等待结果。2.7.0后,引入CompletableFuture作为基础,允许更灵活的回调处理。配置和代码示例展示了如何实现异步调用。
摘要由CSDN通过智能技术生成

1、参考

异步调用:http://dubbo.apache.org/en-us/docs/user/demos/async-call.html

2、异步调用

2.1、Dubbo2.0.6+的异步调用

这里说的异步调用应该是非阻塞的NIO调用,一个线程可同时并发调用多个远程服务,每个服务的调用都是非阻塞的,线程立即返回。

/user-guide/images/future.jpg

上图中主要关注一下userThread的行为,用户发出调用后,IOThread会在上下文中设置Future。用户从RpcContext中取得Future,然后wait这个Future其它的事情都由IOThread完成。

总之,用户发出调用后会立刻返回,而不是调用在服务端执行完代码、返回结果后返回。用户返回后可以去做点其它事情,比如调用另外一个服务,然后回头等待前一个调用完成。从上图可以看出,异步调用完全是Consumer端的行为。

配置:

<dubbo:reference id="fooService" interface="com.alibaba.foo.FooService">
      <dubbo:method name="findFoo" async="true" />
</dubbo:referen
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值