目录
- 前言
- 反应式编程简介
- 阻塞可能会浪费资源
- 使用异步来解决?
- 回调地狱的例子
- 与回调代码等效的Reactor代码示例
- 具有超时和回退的Reactor代码示例
- CompletableFuture组合的例子
- 与未来代码等效的Reactor代码示例
- 从命令式到反应式编程
- 可组合性和可读性
- 类比装配线工作流程
- 操作符(运算符)
- 在你订阅之前什么都不会发生
- 背压
- 热与冷
前言
前一篇分析了Spring WebFlux的设计及实现原理后,反应式编程又来了,Spring WebFlux其底层还是基于Reactive编程模型的,在java领域中,关于Reactive,有一个框架规范,叫【Reactive Streams】,在java9的ava.util.concurrent.Flow包中已经实现了这个规范。其他的优秀实现还有Reactor和Rxjava。在Spring WebFlux中依赖的就是Reactor。虽然你可能没用过Reactive开发过应用,但是或多会少你接触过异步Servlet,同时又有这么一种论调:异步化非阻塞io并不能增强太多的系统性能,但是也不可否认异步化后并发性能上去了。听到这种结论后在面对是否选择Reactive

本文介绍了反应式编程的概念,通过对比回调地狱和Reactor、CompletableFuture的异步解决方案,强调了反应式编程在提升并发性能和资源利用上的优势。Reactor作为Java的反应式编程实现,提供了更好的可组合性和可读性,允许开发者以声明式方式表达数据流。文章还探讨了反应式编程中的背压机制,解释了在订阅之前数据流不会启动的原因。
订阅专栏 解锁全文
5万+

被折叠的 条评论
为什么被折叠?



