響應(yīng)式編程實(shí)戰(zhàn):構(gòu)建彈性、可伸縮、事件驅(qū)動(dòng)的分布式系統(tǒng) [法]克萊門特·埃斯科菲耶
定 價(jià):109 元
- 作者:[法]克萊門特·埃斯科菲耶,[澳]肯·芬尼根
- 出版時(shí)間:2024/1/1
- ISBN:9787111743569
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP312.8JA
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書展示了如何利用事件驅(qū)動(dòng)和響應(yīng)式原理來構(gòu)建健壯的分布式系統(tǒng),減少延遲并提高吞吐量——特別是在微服務(wù)和無服務(wù)器應(yīng)用程序中。本書分為四部分:第一部分介紹響應(yīng)式的背景、環(huán)境和內(nèi)容;第二部分深入講解響應(yīng)式,涵蓋分布式系統(tǒng)的弊端、響應(yīng)式系統(tǒng)和響應(yīng)式編程;第三部分闡述如何使用Quarkus構(gòu)建響應(yīng)式應(yīng)用程序,涵蓋響應(yīng)式引擎、響應(yīng)式編程庫SmallRye Mutiny、HTTP以及響應(yīng)式數(shù)據(jù)訪問的相關(guān)知識(shí);第四部分介紹基于Quarkus構(gòu)建響應(yīng)式系統(tǒng)的技術(shù)實(shí)踐。通過本書,你將學(xué)習(xí)Quarkus的基礎(chǔ)知識(shí),在云平臺(tái)中創(chuàng)建真正的Kubernetes原生應(yīng)用程序。
響應(yīng)式系統(tǒng)和事件驅(qū)動(dòng)架構(gòu)正在成為應(yīng)用程序設(shè)計(jì)中不可或缺的部分。響應(yīng)式系統(tǒng)確保無論發(fā)生什么故障或錯(cuò)誤,應(yīng)用程序都具有響應(yīng)性、可恢復(fù)性和彈性,而事件驅(qū)動(dòng)架構(gòu)為分布式系統(tǒng)提供了靈活、可組合的選擇。本書旨在幫助Java開發(fā)人員使用Quarkus 2.x(Kubernetes原生Java框架)將這些方法結(jié)合在一起。
Clement Escoffier和Ken Finnigan向你展示了如何利用事件驅(qū)動(dòng)和響應(yīng)式原理來構(gòu)建健壯的分布式系統(tǒng),減少延遲并提高吞吐量——特別是在微服務(wù)和無服務(wù)器應(yīng)用程序中。你還將學(xué)習(xí)Quarkus的基礎(chǔ)知識(shí),在云平臺(tái)中創(chuàng)建真正的Kubernetes原生應(yīng)用程序。
通過學(xué)習(xí)本書,你將:
? 了解響應(yīng)式系統(tǒng)和事件驅(qū)動(dòng)架構(gòu)的基本原理。
? 學(xué)會(huì)使用Quarkus構(gòu)建響應(yīng)式應(yīng)用程序。
? 學(xué)會(huì)將Quarkus與Apache Kafka或AMQP結(jié)合起來構(gòu)建響應(yīng)式系統(tǒng)。
? 利用Quarkus開發(fā)可在事件驅(qū)動(dòng)架構(gòu)中使用消息的微服務(wù)。
? 學(xué)會(huì)將外部消息傳遞系統(tǒng)(如Apache Kafka)與Quarkus集成。
? 使用Quarkus、響應(yīng)式系統(tǒng)和響應(yīng)式編程概念構(gòu)建應(yīng)用程序。
Clement Escoffier 是 Red Hat 的響應(yīng)式架構(gòu)師。他職業(yè)生涯很豐富,從學(xué)術(shù)職
位到管理職位。目前,他主要從事 Quarkus 和 Vert.x 開發(fā)工作。他參與了涉及
許多領(lǐng)域和技術(shù)的項(xiàng)目和產(chǎn)品,包括 OSGi、移動(dòng)應(yīng)用程序開發(fā)、持續(xù)交付和
DevOps。他的主要興趣領(lǐng)域是軟件工程—使軟件開發(fā)更高效、更有趣的過程、
方法和工具。Clement 是許多開源項(xiàng)目的積極貢獻(xiàn)者,如 Apache Felix、iPOJO、
Wisdom Framework、Eclipse Vert.x、 SmallRye、Eclipse MicroProfile 和 Quarkus。
Ken Finnigan 是 Red Hat 中間件的高級(jí)首席軟件工程師,在世界各地的企業(yè)
擔(dān)任顧問和軟件工程師超過 20 年。Ken 負(fù)責(zé) SmallRye 項(xiàng)目,該項(xiàng)目實(shí)現(xiàn)了
Eclipse MicroProfile 規(guī)范,同時(shí)也希望通過 Kubernetes 原生開發(fā)進(jìn)行創(chuàng)新。Ken
也是“ Quarkus 成為超音速亞原子 Java”開發(fā)團(tuán)隊(duì)的一員。作為 SmallRye 工作
的一部分,Ken 積極參與 Eclipse MicroProfile 社區(qū),為云原生中的 Java 微服務(wù)
開發(fā)規(guī)范,還曾擔(dān)任 Thorntail 和 LiveOak 以及其他 JBoss 項(xiàng)目的負(fù)責(zé)人。Ken
還是 Enterprise Java Microservices 和其他兩本書的作者。
目錄
前言1
第一部分 響應(yīng)式和Quarkus簡(jiǎn)介
第1章 響應(yīng)式簡(jiǎn)介13
1.1 響應(yīng)式是什么13
1.2 響應(yīng)式軟件并不是一件新鮮事14
1.3 響應(yīng)式的整體藍(lán)圖15
1.4 為什么響應(yīng)式架構(gòu)如此適合云原生應(yīng)用程序17
1.5 響應(yīng)式不是銀彈18
第2章 Quarkus簡(jiǎn)介19
2.1 云平臺(tái)中的Java19
2.2 Quarkus方式29
2.3 創(chuàng)建第一個(gè)Quarkus應(yīng)用程序31
2.4 10分鐘講明白Kubernetes下的Quarkus38
2.5 談?wù)勗绦?4
2.6 本章小結(jié)49
第二部分 響應(yīng)式和事件驅(qū)動(dòng)的應(yīng)用程序
第3章 分布式系統(tǒng)的弊端53
3.1 什么是分布式系統(tǒng)53
3.2 云原生和Kubernetes原生應(yīng)用程序56
3.3 淺析分布式系統(tǒng)的弊端61
3.4 Kubernetes世界中分布式計(jì)算的謬誤62
3.5 時(shí)間問題:同步通信的缺點(diǎn)64
3.6 本章小結(jié)70
第4章 響應(yīng)式系統(tǒng)的設(shè)計(jì)原則72
4.1 響應(yīng)式系統(tǒng)10172
4.2 命令和事件74
4.3 目的地與空間解耦79
4.4 時(shí)間解耦81
4.5 非阻塞I/O的作用82
4.6 響應(yīng)式應(yīng)用程序的剖析90
4.7 本章小結(jié)94
第5章 響應(yīng)式編程:征服異步性95
5.1 異步代碼和模式95
5.2 使用future101
5.3 Project Loom:虛擬線程和載體線程103
5.4 響應(yīng)式編程106
5.5 響應(yīng)式流和對(duì)流量控制的需求112
5.6 本章小結(jié)119
第三部分 使用Quarkus構(gòu)建響應(yīng)式應(yīng)用程序和系統(tǒng)
第6章 Quarkus:響應(yīng)式引擎123
6.1 命令式模型124
6.2 響應(yīng)式模型127
6.3 響應(yīng)式與命令式的統(tǒng)一128
6.4 響應(yīng)式引擎132
6.5 響應(yīng)式編程模型133
6.6 Quarkus的事件驅(qū)動(dòng)架構(gòu)134
6.7 本章小結(jié)134
第7章 Mutiny:事件驅(qū)動(dòng)的響應(yīng)式編程API136
7.1 為什么是另一個(gè)響應(yīng)式編程庫136
7.2 是什么讓Mutiny獨(dú)一無二137
7.3 在Quarkus中使用Mutiny138
7.4 Uni和Multi139
7.5 Mutiny和流量控制141
7.6 觀測(cè)事件142
7.7 轉(zhuǎn)換事件143
7.8 鏈接異步操作144
7.9 從故障中恢復(fù)147
7.10 合并和連接數(shù)據(jù)項(xiàng)148
7.11 選擇數(shù)據(jù)項(xiàng)149
7.12 收集數(shù)據(jù)項(xiàng)151
7.13 本章小結(jié)151
第8章 響應(yīng)式與HTTP153
8.1 HTTP請(qǐng)求的過程154
8.2 RESTEasy Reactive155
8.3 有什么好處158
8.4 異步端點(diǎn)返回Uni160
8.5 處理故障并定制響應(yīng)163
8.6 流數(shù)據(jù)166
8.7 響應(yīng)式分?jǐn)?shù)172
8.8 本章小結(jié)173
第9章 響應(yīng)式數(shù)據(jù)訪問174
9.1 數(shù)據(jù)訪問的問題174
9.2 與關(guān)系數(shù)據(jù)庫的非阻塞交互176
9.3 使用響應(yīng)式ORM:Hibernate Reactive177
9.4 NoSQL是什么182
9.5 與Redis交互182
9.6 與數(shù)據(jù)相關(guān)的事件和變更數(shù)據(jù)捕獲186
9.7 使用Debezium捕獲變化188
9.8 本章小結(jié)191
第四部分 連接點(diǎn)
第10章 響應(yīng)式消息傳遞:連接組織195
10.1 從響應(yīng)式應(yīng)用程序到響應(yīng)式系統(tǒng)195
10.2 構(gòu)建基于消息的應(yīng)用程序205
10.3 把所有的東西放在一起213
10.4 本章小結(jié)217
第11章 事件總線:核心支柱218
11.1 Kafka或AMQP:選擇正確的工具218
11.2 用Kafka構(gòu)建響應(yīng)式系統(tǒng)219
11.3 用AMQP構(gòu)建響應(yīng)式系統(tǒng)233
11.4 本章小結(jié)240
第12章 響應(yīng)式REST客戶端:用HTTP端點(diǎn)連接241
12.1 與HTTP端點(diǎn)交互241
12.2 響應(yīng)式REST客戶端244
12.3 阻塞和非阻塞248
12.4 處理故障250
12.5 使用RESTEasy Reactive客戶端構(gòu)建API網(wǎng)關(guān)255
12.6 在消息傳遞應(yīng)用程序中使用REST客戶端260
12.7 本章小結(jié)265
第13章 響應(yīng)式和事件驅(qū)動(dòng)架構(gòu)的可觀測(cè)性266
13.1 為什么可觀測(cè)性這么重要266
13.2 消息傳遞與健康檢查267
13.3 消息傳遞與度量273
13.4 消息傳遞與分布式追蹤277
13.5 本章小結(jié)281
第14章 總結(jié)282
14.1 一個(gè)簡(jiǎn)短的總結(jié)282
14.2 這是全部嗎283
14.3 響應(yīng)式的未來284
14.4 結(jié)束即開始285