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