Dubbo剖析-服务消费端异步调用

一、前言

前面我们讲解的无论是正常调用还是泛化调用也好,都是进行同步调用的,也就是服务消费方发起一个远程调用后,调用线程要被阻塞挂起,直到服务提供方返回。本节来讲解下异步调用,异步调用是指服务消费方发起一个远程调用后,不等服务提供方返回结果,调用方法就返回了,也就是当前线程不会被阻塞,这就允许调用方同时调用多个远程方法。

二、服务端异步调用实例

image.png

可以测试下在sayHello和sayHello2方法内sleep 2s,然后执行调用,会发现输出为costs:2这说明调用方的sayHello和sayHello2是并发调用的,因为如果是串行的话会输出costs:4.

三、总结

异步调用是基于 NIO 的非阻塞实现并行调用,客户端不需要启动多线程即可完成并行调用多个远程服务,相对多线程开销较小。后期会在本公众号 '技术原始积累' 的精品区下分析dubbo异步实现原理,敬请期待。

欢迎大家加入知识星球,在知识星球里面我们会深入讨论Java并发编程,以及JUC包源码;Java类加载器原理;Spring,Springboot,Tomcat,Dubbo等开源框架的使用以及源码剖析;分享作者从毕业到现在一路走来的学习经验,如何高效学习,如何阅读源码;讨论职业面试时候会经常遇到的问题以及如何作答,读者可以识别下面二维码加入:

image
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 世界上永恒的是,能量永远守恒。 有人富得流油而有人人家徒四壁,有人左右逢源就有人四处碰壁,世界永远都充实富有,是一...
    二公子李阅读 202评论 0 0
  • 六月,烈日炎炎,其它的花都已凋零,而荷花却在这时随风为人们送来阵阵清香。 池塘里,一片片荷叶挨挤在一起,像一个个碧...
    空白野阅读 224评论 0 0
  • 创业,就是你想用一个真诚的心去帮助别人的同时,来帮助自己!仅仅为了名,为了利,因为不想打工,或者就想当老板,这些都...
    老鱼er阅读 671评论 0 1