課程簡介
在互聯(lián)網(wǎng)+的今天,人們?cè)赑C、手機(jī)、Pad 上安裝了各式各樣的軟件服務(wù)或APP,享受著互聯(lián)網(wǎng)技術(shù)帶來的高效和便捷。隨著這些產(chǎn)品的高速發(fā)展,大家對(duì)高性能、穩(wěn)定性、安全性、擴(kuò)展性等方面有了更高的要求,而誕生于20多年前的Java平臺(tái),一直緊跟時(shí)代脈搏,兼收并蓄,持續(xù)優(yōu)化,在編程領(lǐng)域交出最滿意的答卷,最終成為現(xiàn)代互聯(lián)網(wǎng)服務(wù)端開發(fā)的王者。
在當(dāng)前互聯(lián)網(wǎng)環(huán)境下,產(chǎn)品的持續(xù)可用性、可延展性至關(guān)重要,它不僅關(guān)系著用戶的使用體驗(yàn),更關(guān)系著一個(gè)產(chǎn)品在持續(xù)服務(wù)用戶、提高更優(yōu)服務(wù)質(zhì)量的情況下,仍能保證安全穩(wěn)定的有效承諾?,F(xiàn)代互聯(lián)網(wǎng)產(chǎn)品架構(gòu)已基本完成從單體架構(gòu)到微服務(wù)架構(gòu)(甚至云原生)的過渡,這種轉(zhuǎn)變也是為了達(dá)成產(chǎn)品的持續(xù)可用性和延展性的目的。但同時(shí),我們也逐漸看到,僅僅依靠微服務(wù)的概念,并不能解決所有問題,我們可能需要仍需同時(shí)關(guān)注編程模式所帶來的新的變革。反應(yīng)式編程的概念,早已有之,“反應(yīng)式宣言”(最終版)更是在2014年就發(fā)布于世,很長時(shí)間以來,雖然其異步(asynchronous)、回壓(backpressure)等特點(diǎn)被工程師們所熟知,但它并沒有一個(gè)能被大眾所知并接受的常規(guī)實(shí)現(xiàn)方案。究其原因就在于,其理論觀點(diǎn)雖然“誘人”,但實(shí)現(xiàn)難度較大,同時(shí)對(duì)工程師團(tuán)隊(duì)的能力也有一定的要求。
在反應(yīng)式平臺(tái)中,Akka算是最優(yōu)秀的框架之一,筆者曾在2018年出版了《Akka實(shí)戰(zhàn)》一書,當(dāng)時(shí)也是首次以原創(chuàng)出版的形式引入反應(yīng)式相關(guān)框架技術(shù),不過,它主要聚焦于分布式計(jì)算處理,而并非通用應(yīng)用開發(fā)平臺(tái)。其后朋友何品翻譯的《反應(yīng)式設(shè)計(jì)模式》出版后,對(duì)廣大工程師來講,可能“反應(yīng)式”這個(gè)中文提法才替換之前容易混淆的、略有前端色彩的“響應(yīng)式”(一種前端布局方案),真正“飛入尋常百姓家”。而隨著RxJava、 Vert.x等“小眾”框架的興起,以及Java函數(shù)式編程的引入,大家逐漸習(xí)慣了反應(yīng)式編程范式,而作為Java框架領(lǐng)域的集大成者Spring,也在5.0后開始支持反應(yīng)式編程。
目標(biāo)收益
培訓(xùn)對(duì)象
課程大綱
引子 | 如何編寫擁有彈性,容錯(cuò)性的反應(yīng)式系統(tǒng) |
第一單元 反應(yīng)式編程基礎(chǔ) |
1. 反應(yīng)式編程基礎(chǔ) 1.1 什么是反應(yīng)式編程 1.2 反應(yīng)式宣言解讀 1.3 反應(yīng)式編程應(yīng)用場景 2. 反應(yīng)式編程框架 2.1 RxJava異步鏈?zhǔn)教幚?br/>2.2 Vert.x Web開發(fā)案例 2.3 Akka在分布式計(jì)算中的使用 2.4 Spring5對(duì)反應(yīng)式的支持 |
第二單元 反應(yīng)式編程之Vert.x服務(wù)開發(fā) |
3. Vert.x基礎(chǔ) 3.1 Vert.x基本架構(gòu) 3.2 淺析流式API 3.3 編寫第一個(gè)服務(wù)端 4. Vert.x實(shí)戰(zhàn)開發(fā) 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 實(shí)踐 6. Vert.x注意要點(diǎn) 6.1 異步與非阻塞 6.2 線程安全性 6.3 日志處理 |
第三單元 Spring Reactor 基礎(chǔ) |
7. Spring反應(yīng)式編程基礎(chǔ) 7.1 Reactor概念解讀 7.2 創(chuàng)建反應(yīng)式應(yīng)用程序 7.3 反應(yīng)式組合 7.4 反應(yīng)式Stream處理 |
第四單元 Spring WebFlux |
8. Spring WebFlux實(shí)戰(zhàn)開發(fā) 8.1 WebFlux簡要介紹 8.2 WebFlux與MVC模型對(duì)比 8.3 定義反應(yīng)式控制器 8.4 HTTP請(qǐng)求與響應(yīng) 8.5 數(shù)據(jù)結(jié)果轉(zhuǎn)換 8.6 WebFlux反應(yīng)式開發(fā)注意事項(xiàng) |
引子 如何編寫擁有彈性,容錯(cuò)性的反應(yīng)式系統(tǒng) |
第一單元 反應(yīng)式編程基礎(chǔ) 1. 反應(yīng)式編程基礎(chǔ) 1.1 什么是反應(yīng)式編程 1.2 反應(yīng)式宣言解讀 1.3 反應(yīng)式編程應(yīng)用場景 2. 反應(yīng)式編程框架 2.1 RxJava異步鏈?zhǔn)教幚?br/>2.2 Vert.x Web開發(fā)案例 2.3 Akka在分布式計(jì)算中的使用 2.4 Spring5對(duì)反應(yīng)式的支持 |
第二單元 反應(yīng)式編程之Vert.x服務(wù)開發(fā) 3. Vert.x基礎(chǔ) 3.1 Vert.x基本架構(gòu) 3.2 淺析流式API 3.3 編寫第一個(gè)服務(wù)端 4. Vert.x實(shí)戰(zhàn)開發(fā) 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 實(shí)踐 6. Vert.x注意要點(diǎn) 6.1 異步與非阻塞 6.2 線程安全性 6.3 日志處理 |
第三單元 Spring Reactor 基礎(chǔ) 7. Spring反應(yīng)式編程基礎(chǔ) 7.1 Reactor概念解讀 7.2 創(chuàng)建反應(yīng)式應(yīng)用程序 7.3 反應(yīng)式組合 7.4 反應(yīng)式Stream處理 |
第四單元 Spring WebFlux 8. Spring WebFlux實(shí)戰(zhàn)開發(fā) 8.1 WebFlux簡要介紹 8.2 WebFlux與MVC模型對(duì)比 8.3 定義反應(yīng)式控制器 8.4 HTTP請(qǐng)求與響應(yīng) 8.5 數(shù)據(jù)結(jié)果轉(zhuǎn)換 8.6 WebFlux反應(yīng)式開發(fā)注意事項(xiàng) |