17.4 小结
以下是本章中的关键概念。
- 反应式编程背后的基本思想已经有二三十年的历史了,不过由于现代应用处理大量数据的需求以及用户预期的改变,它又再次出现在聚光灯下,变得炙手可热。
- 反应式编程思想的正式提出是在反应式宣言中,它指出反应式软件必须具备四个相互关联的特性:响应性、韧性、弹性以及消息驱动。
- 反应式编程原则通过微调,既可以用于构建单一应用,也可以用于设计反应式系统,整合多个应用。
- 反应式应用基于反应式流承载的一个或多个事件流的异步处理。由于反应式流在开发反应式应用中的角色如此重要,Netflix、Pivotal、Lightbend以及Red Hat等多家公司成立了联盟,致力于推动反应式概念的标准化,试图打破不同反应式库之间的互操作性障碍。
- 由于反应式流异步处理的天然特征,它们往往都自带背压机制。背压可以避免处理速度慢的消费方被高速的消息生产方压垮。
- 反应式设计及其标准流程已经正式引入了Java。Java 9的Flow API定义了四个核心接口:
Publisher、Subscriber、Subscription以及Processor。 - 大多数情况下,这些接口不需要开发者直接去实现,它们主要作为实现反应式语义的第三方库的通用接口。
- 应用最广泛的反应式库是RxJava,它(除了Java 9 Flow API中定义的那些基本特性之外)额外提供了很多便利而强大的操作。譬如,使用它提供的操作,你可以很便利地对单一反应式流中的元素进行转换和过滤,还可以整合和聚集多个流。
