推荐序七
响应式编程的概念最早是在20世纪90年代末提出的,其让微软的Erik Mejier从中获取了灵感,设计、开发了.NET的Rx库(2012年开源),这也是响应式编程最初的实现。在此之后,Reactive Streams出现了。最开始,它是由NetFlix、Pivotal(现为Vmware Tanzu)及LightBend等几家公司的开发人员提出的。紧接着,在2015年,JDK正式将Reactive Streams作为标准纳入,其就是我们熟知的JDK 9中的Flow API。这也从侧面证明了响应式编程是多么优秀,连JDK都将其收入麾下。
随着近些年响应式编程理念的兴起,越来越多的厂商逐步将其投入使用。NetFlix和Spring是其中的佼佼者。为了进行响应式改造,Spring将Project Reactor纳入旗下进行孵化,而Project Reactor后来成了我们熟知的Spring Reactor。在Web方面,正如Josh Long所说的,随着并发量不断增加及微服务架构流行,传统的Spring MVC渐渐无法满足我们的需求,这也让我们感受到了传统I/O的局限性。虽然我们可以通过增加线程来提高性能,但这并不是最佳解决方案。线程对于我们来说可能是廉价的,但是对于JVM之类的平台来说,则是一种很宝贵的资源。因此,基于Spring Reactor的Spring WebFlux也就应运而生了。正如Spring官方文档所讲的那样,响应式编程虽然不能让程序跑得更快,但它所具备的这种异步、非阻塞的特性能够让程序以较少的固定数量线程和较少的内存来处理更多的业务。这样能够充分利用机器资源,从而避免了我们以往为了提高性能而不停地增加机器的尴尬局面。
响应式编程是未来的趋势,对于Java开发人员而言,它的到来无疑使整个Java生态体系得到了一次升华,并且改变了我们以往的思维方式及开发方式,也改变了众多开发人员以往对Java的看法。可以说,响应式编程给Java带来了第二春。
目前,响应式编程在国内才刚刚开始,知秋所编写的“Java编程方法论系列丛书”无疑填补了国内这个领域的空白。如果你对响应式编程了解不多,可以先阅读这本书的前作《Java编程方法论:响应式RxJava与代码设计实战》。为了能让读者更好地入门并掌握响应式编程,知秋在B站和simtoco上录制并上传了大量相关源码解读视频,感兴趣的小伙伴可以关注B站上的simviso官方页面,以及simtoco官网。在阅读这本书时,建议你一定要反复阅读,注意细节。如果你的Java基础不是很牢固,那么切记不要随意跳读,你可以跟随配套解读视频进行学习,这样能降低学习难度。
最后,我相信响应式编程必将在未来大放光彩。
刘嘉诚(花名 虚生花)
simviso成员