引子:被誉为“中国大数据第一人”的涂子沛先生在其成名作《数据之巅》里提到,摩尔定律、社交媒体、数据挖掘是大数据的三大成因。IBM的研究称,整个人类文明所获得的全部数据中,有90%是过去两年内产生的。在此背景下,包括NoSQL,Hadoop, Spark, Storm, Kylin在内的大批新技术应运而生。其中以RxJava和Reactor为代表的响应式(Reactive)编程技术针对的就是经典的大数据4V定义(Volume,Variety,Velocity,Value)中的Velocity,即高并发问题,而在即将发布的Spring 5中,也引入了响应式编程的支持。在接下来的几周,我会围绕响应式编程分三期与你分享我的一些学习心得。作为第一篇,首先从Spring 5谈起。
1 响应式宣言
和敏捷宣言一样,说起响应式编程,必先提到响应式宣言。
We want systems that are Responsive, Resilient, Elastic and Message Driven. We call these Reactive Systems. - The Reactive Manifesto
不知道是不是为了向敏捷宣言致敬,响应式宣言中也包含了4组关键词:
- Responsive: 可响应的。要求系统尽可能做到在任何时候都能及时响应。
- Resilient: 可恢复的。要求系统即使出错了,也能保持可响应性。
- Elastic: 可伸缩的。要求系统在各种