前言
最近几年,随着Go、Node等新语言、新技术的出现,Java作为服务器端开发语言老大的地位受到了不小的挑战。虽然Java的市场地位在短时间内并不会发生改变,但Java社区还是将挑战视为机遇,并努力、不断地提高自身应对高并发服务器端开发场景的能力。
为了应对高并发服务器端开发场景,在2009年,微软提出了一个更优雅地实现异步编程的方式——Reactive Programming,我们称之为响应式编程。随后,各语言很快跟进,都拥有了属于自己的响应式编程实现。比如,JavaScript语言就在ES6中通过Promise机制引入了类似的异步编程方式。同时,Java社区也在快速发展,Netflix和LightBend公司提供了RxJava和Akka Stream等技术,使得Java平台也有了能够实现响应式编程的框架。
当下,我们通过Mina和Netty这样的NIO框架其实就能完成高并发下的服务器端开发任务,但这样的技术只掌握在少数高级开发人员手中,因为它们难度较大,并不适合大部分普通开发者。
虽然目前已经有不少公司在实践响应式编程,但整体来说,其应用范围依旧不大。出现这种情况的原因在于当下缺少简单、易用的技术,这些技术需要能使响应式编程更加普及,并做到如同Spring MVC一样结合Spring提供的服务对各种技术进行整合。
在2017年9月28日,Spring 5正式发布。Spring 5发布最大的意义在于,它将响应式编程技术的普及向前推进了一大步。而同时,作为在背后支持Spring 5响应式编程的框架Spring Reactor,也进入了里程碑式的3.1.0版本。
在本书中,我会带着大家学习响应式编程,并通过逐层递进的方式对Spring Reactor的源码设计与实现进行解读,以揭示其中的设计精髓,帮助大家灵活运用及提升代码设计思维。
限于篇幅,本书不可能涉及Spring Reactor的所有知识点。作为本书的有效补充,我特意录制了一套针对Spring Reactor源码进行全面解读的配套视频。未来,我也会根据Spring Reactor版本的更新迭代,适时地推出新的解读视频,帮助大家走在响应式技术发展的最前沿。
最后,感谢Spring官方布道师Josh Long和Spring Reactor项目创始人Stephane Maldini在百忙之中为本书作序。作为响应式编程研究人员,受到官方认可,深感荣幸!另外,也要感谢家人及simviso小伙伴的一路支持。
该套视频的地址与本书的配套源码一起放在同一个GitHub代码仓库中,地址如下:
https://github.com/muyinchen/Java-programming-methodology-Reactor-articles
读者服务
微信扫码:
· 获取博文视点学院在线课程、电子书20元代金券
· 获取本书配套视频及源码资源
· 获取国外知名Java开发者分享视频(中文字幕)
· 加入本书读者交流群,与更多读者互动