Apache Dubbo全链路异步怎么实现


本篇内容介绍了“Apache Dubbo全链路异步怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Dubbo从2.7.0版本开始,升级了对java8的支持,以JUC包下的CompletableFuture为基础,支持所有异步编程接口,解决了2.7.0版本之前异步调用功能使用上的不方便。
Dubbo异步调用也是基于NIO的非阻塞能力实现的,服务消费端不需要启动多个线程即可完成并行调用多个远程服务,其调用流程如下:Dubbo2.7.0之前的弊端在2.7.0之前,Dubbo的服务消费者异步调用服务提供者的的方式如下:
或者
我们可以看到,无论从使用方面,还是从代码的整洁度方面,都极不友好,需要进行很多额外的操作才能拿到异步调用后的结果。
Dubbo2.7.0基于CompletableFuture的增强2.7.0发布后,Dubbo升级到对java8的支持,同时基于CompletableFuture增强了异步调用。2.7.0允许接口返回CompletableFuture,通过这种类型的返回值,我们更容易的实现Consumer、Provider端的异步编程。Dubbo2.7.0基于CompletableFuture编程的几种方式方法1、接口直接返回CompletableFuture基于Dubbo的应用,服务消费者和服务提供者都依赖一个二方SDK,我们可以直接把二方SDK的接口的返回值定义为CompletableFuture类型即可,服务消费端根据这个返回值类型,很方便的进行异步调用。
方法2、重载原始方法如果我们不想修改原始方法,我们可以重载原始方法,并将重载后的方法定义为CompletableFuture类型的返回值。
这样一来,服务消费端可以直接调用重载后的findUser方法即可。
方法3、基于AsyncContext实现异步调用在方法体中通过RpcContext.startAsync()开启异步,然后耗时业务在新线程中异步执行,然后执 香港云主机行的结果通过asynvContext.write方法写回,方法直接返回null。“Apache Dubbo全链路异步怎么实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注开发云网站,小编将为大家输出更多高质量的实用文章!

相关推荐: CORS如何实现跨域资源共享

这篇文章将为大家详细讲解有关CORS如何实现跨域资源共享,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。关于“C 香港云主机ORS如何实现跨域资源共享”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 09/21 11:23
Next 09/21 12:07

相关推荐