课程简介
在互联网+的今天,人们在PC、手机、Pad 上安装了各式各样的软件服务或APP,享受着互联网技术带来的高效和便捷。随着这些产品的高速发展,大家对高性能、稳定性、安全性、扩展性等方面有了更高的要求,而诞生于20多年前的Java平台,一直紧跟时代脉搏,兼收并蓄,持续优化,在编程领域交出最满意的答卷,最终成为现代互联网服务端开发的王者。
在当前互联网环境下,产品的持续可用性、可延展性至关重要,它不仅关系着用户的使用体验,更关系着一个产品在持续服务用户、提高更优服务质量的情况下,仍能保证安全稳定的有效承诺。现代互联网产品架构已基本完成从单体架构到微服务架构(甚至云原生)的过渡,这种转变也是为了达成产品的持续可用性和延展性的目的。但同时,我们也逐渐看到,仅仅依靠微服务的概念,并不能解决所有问题,我们可能需要仍需同时关注编程模式所带来的新的变革。反应式编程的概念,早已有之,“反应式宣言”(最终版)更是在2014年就发布于世,很长时间以来,虽然其异步(asynchronous)、回压(backpressure)等特点被工程师们所熟知,但它并没有一个能被大众所知并接受的常规实现方案。究其原因就在于,其理论观点虽然“诱人”,但实现难度较大,同时对工程师团队的能力也有一定的要求。
在反应式平台中,Akka算是最优秀的框架之一,笔者曾在2018年出版了《Akka实战》一书,当时也是首次以原创出版的形式引入反应式相关框架技术,不过,它主要聚焦于分布式计算处理,而并非通用应用开发平台。其后朋友何品翻译的《反应式设计模式》出版后,对广大工程师来讲,可能“反应式”这个中文提法才替换之前容易混淆的、略有前端色彩的“响应式”(一种前端布局方案),真正“飞入寻常百姓家”。而随着RxJava、 Vert.x等“小众”框架的兴起,以及Java函数式编程的引入,大家逐渐习惯了反应式编程范式,而作为Java框架领域的集大成者Spring,也在5.0后开始支持反应式编程。
目标收益
培训对象
课程大纲
引子 | 如何编写拥有弹性,容错性的反应式系统 |
第一单元 反应式编程基础 |
1. 反应式编程基础 1.1 什么是反应式编程 1.2 反应式宣言解读 1.3 反应式编程应用场景 2. 反应式编程框架 2.1 RxJava异步链式处理 2.2 Vert.x Web开发案例 2.3 Akka在分布式计算中的使用 2.4 Spring5对反应式的支持 |
第二单元 反应式编程之Vert.x服务开发 |
3. Vert.x基础 3.1 Vert.x基本架构 3.2 浅析流式API 3.3 编写第一个服务端 4. Vert.x实战开发 4.1 基于TCP的client-server 4.2 基于HTTP(Web)的client-server 4.3 详解事件总线 4.4 Vert.x异步处理 5. Vert.x Streams 5.1 ReadStream与WriteStream 5.2 NetSocket 实践 6. Vert.x注意要点 6.1 异步与非阻塞 6.2 线程安全性 6.3 日志处理 |
第三单元 Spring Reactor 基础 |
7. Spring反应式编程基础 7.1 Reactor概念解读 7.2 创建反应式应用程序 7.3 反应式组合 7.4 反应式Stream处理 |
第四单元 Spring WebFlux |
8. Spring WebFlux实战开发 8.1 WebFlux简要介绍 8.2 WebFlux与MVC模型对比 8.3 定义反应式控制器 8.4 HTTP请求与响应 8.5 数据结果转换 8.6 WebFlux反应式开发注意事项 |
引子 如何编写拥有弹性,容错性的反应式系统 |
第一单元 反应式编程基础 1. 反应式编程基础 1.1 什么是反应式编程 1.2 反应式宣言解读 1.3 反应式编程应用场景 2. 反应式编程框架 2.1 RxJava异步链式处理 2.2 Vert.x Web开发案例 2.3 Akka在分布式计算中的使用 2.4 Spring5对反应式的支持 |
第二单元 反应式编程之Vert.x服务开发 3. Vert.x基础 3.1 Vert.x基本架构 3.2 浅析流式API 3.3 编写第一个服务端 4. Vert.x实战开发 4.1 基于TCP的client-server 4.2 基于HTTP(Web)的client-server 4.3 详解事件总线 4.4 Vert.x异步处理 5. Vert.x Streams 5.1 ReadStream与WriteStream 5.2 NetSocket 实践 6. Vert.x注意要点 6.1 异步与非阻塞 6.2 线程安全性 6.3 日志处理 |
第三单元 Spring Reactor 基础 7. Spring反应式编程基础 7.1 Reactor概念解读 7.2 创建反应式应用程序 7.3 反应式组合 7.4 反应式Stream处理 |
第四单元 Spring WebFlux 8. Spring WebFlux实战开发 8.1 WebFlux简要介绍 8.2 WebFlux与MVC模型对比 8.3 定义反应式控制器 8.4 HTTP请求与响应 8.5 数据结果转换 8.6 WebFlux反应式开发注意事项 |