反應式設計模式

圖書信息

反應式設計模式

作者:[美]羅蘭·庫恩(Roland Kuhn)布賴恩·哈納菲(Brian Hanafee)傑米·艾倫(Jamie Allen)著 何 品 邱嘉和 王石沖 譯 林煒翔審校
定價:98元
印次:1-1
ISBN:9787302517146
出版日期:2019.01.01
印刷日期:2018.12.11

內容簡介

《反應式設計模式》介紹反應式應用程式設計的原則、模式和經典實踐,講述如何用斷路器模式將運行緩慢的組件與其他組件隔開、如何用事務序列(Saga)模式實現多階段事務以及如何通過分片模式來劃分數據集,分析如何保持原始碼的可讀性以及系統的可測試性(即使在存在許多潛在互動和失敗點的情況下)。 主要內容 ? “反應式宣言”權威指南 ? 流量控制、有界一致性、容錯等模式 ? 得之不易的關於“什麼行不通”的經驗 ? 在巨大的負載下保持伸縮性的架構

圖書目錄

第Ⅰ部分簡介

第1章為什麼需要反應式?3

1.1剖析反應式套用5

1.2應對負載6

1.3應對失敗7

1.4讓系統即時回響9

1.5避免大泥球10

1.6整合非反應式組件11

1.7小結12

第2章《反應式宣言》概覽13

2.1對用戶作出反應13

2.1.1理解傳統方法14

2.1.2使用共享資源的延遲分析16

2.1.3使用佇列限制最大延遲17

2.2利用並行性18

2.2.1通過並行化降低延遲19

2.2.2使用可組合的Future改善並行性21

2.2.3為序列式執行表象買單22

2.3並行執行的限制24

2.3.1阿姆達爾定律24

2.3.2通用伸縮性法則25

2.4對失敗作出反應26

2.4.1劃分與隔離28

2.4.2使用斷路器29

2.4.3監督30

2.5放棄強一致性32

2.5.1ACID2.033

2.5.2接受更新34

2.6對反應式設計模式的需求35

2.6.1管理複雜性36

2.6.2使編程模型更貼近真實世界37

2.7小結38

第3章行業工具39

3.1反應式的早期解決方案39

3.2函式式編程41

3.2.1不可變性42

3.2.2引用透明性44

3.2.3副作用45

3.2.4函式作為一等公民46

3.3即時回響用戶47

3.4對反應式設計的現有支持49

3.4.1綠色執行緒49

3.4.2事件循環50

3.4.3通信順序進程51

3.4.4Future和Promise53

3.4.5反應式擴展工具包58

3.4.6Actor模型59

3.5小結64

第Ⅱ部分微言大義

第4章訊息傳遞67

4.1訊息67

4.2垂直伸縮68

4.3“基於事件”與“基於訊息”69

4.4“同步”與“異步”71

4.5流量控制73

4.6送達保證75

4.7作為訊息的事件77

4.8同步訊息傳遞79

4.9小結79

第5章位置透明性81

5.1什麼是位置透明性?81

5.2透明化遠程處理的謬誤82

5.3基於顯式訊息傳遞的糾正方案83

5.4最佳化本地訊息傳遞84

5.5訊息丟失85

5.6水平擴展性87

5.7位置透明性使測試更加簡單88

5.8動態組合88

5.9小結90

第6章分而治之91

6.1分層拆解問題92

6.2“依賴”與“子模組”94

6.3構建你自己的大公司96

6.4規範和測試的優點97

6.5水平擴展性和垂直伸縮性98

6.6小結99

第7章原則性失敗處理101

7.1所有權意味著承諾101

7.2所有權隱含生命周期控制103

7.3所有級別上的回彈性104

7.4小結105

第8章有界一致性107

8.1封裝模組糾正方案108

8.2根據事務邊界對數據和行為進行分組109

8.3跨事務邊界建模工作流109

8.4失敗單元即一致性單元110

8.5分離職責111

8.6堅持一致性的隔離範圍113

8.7小結114

第9章按需使用非確定性115

9.1邏輯編程和聲明式數據流115

9.2函式式反應式編程117

9.3不共享簡化並發118

9.4共享狀態的並發119

9.5如何窘境突圍?119

9.6小結121

第10章訊息流123

10.1推動數據向前流動123

10.2模型化領域流程125

10.3認清回彈性的局限性125

10.4估計速率和部署規模126

10.5為流量控制進行規劃127

10.6小結127

第Ⅲ部分設計模式

第11章測試反應式應用程式131

11.1如何測試131

11.1.1單元測試132

11.1.2組件測試133

11.1.3聯動測試133

11.1.4集成測試133

11.1.5用戶驗收測試134

11.1.6黑盒測試與白盒測試134

11.2測試環境135

11.3異步測試136

11.3.1提供阻塞的訊息接收者137

11.3.2選擇逾時時間的難題139

11.3.3斷言訊息的缺失145

11.3.4提供同步執行引擎146

11.3.5異步斷言148

11.3.6完全異步的測試149

11.3.7斷言沒有發生異步錯誤151

11.4測試非確定性系統154

11.4.1執行計畫的麻煩155

11.4.2測試分散式組件155

11.4.3模擬Actor156

11.4.4分散式組件157

11.5測試彈性157

11.6測試回彈性158

11.6.1應用程式回彈性158

11.6.2基礎設施的回彈性162

11.7測試即時回響性164

11.8小結165

第12章容錯及恢復模式167

12.1簡單組件模式167

12.1.1問題設定168

12.1.2模式套用168

12.1.3模式回顧170

12.1.4適用性171

12.2錯誤核心模式171

12.2.1問題設定172

12.2.2模式套用172

12.2.3模式回顧175

12.2.4適用性176

12.3放任崩潰模式176

12.3.1問題設定177

12.3.2模式套用177

12.3.3模式回顧178

12.3.4實現上的考慮179

12.3.5推論:心跳模式180

12.3.6推論:主動失敗信號模式180

12.4斷路器模式181

12.4.1問題設定182

12.4.2模式套用182

12.4.3模式回顧186

12.4.4適用性187

12.5小結187

第13章複製模式189

13.1主動-被動複製模式190

13.1.1問題設定190

13.1.2模式套用191

13.1.3模式回顧203

13.1.4適用性204

13.2多主複製模式204

13.2.1基於共識的複製205

13.2.2具有衝突檢測與處理方案的複製方式208

13.2.3無衝突的可複製數據類型210

13.3主動-主動複製模式217

13.3.1問題設定218

13.3.2模式套用218

13.3.3模式回顧225

13.3.4與虛擬同步模型的關係226

13.4小結227

第14章資源管理模式229

14.1資源封裝模式229

14.1.1問題設定230

14.1.2模式套用230

14.1.3模式回顧236

14.1.4適用性237

14.2資源借貸模式237

14.2.1問題設定238

14.2.2模式套用238

14.2.3模式回顧240

14.2.4適用性241

14.2.5實現上的考慮242

14.2.6變體:使用資源借貸模式進行局部公開242

14.3複雜命令模式243

14.3.1問題設定243

14.3.2模式套用244

14.3.3模式回顧251

14.3.4適用性252

14.4資源池模式252

14.4.1問題設定253

14.4.2模式套用253

14.4.3模式回顧255

14.4.4實現上的考慮256

14.5託管阻塞模式257

14.5.1問題設定257

14.5.2模式套用258

14.5.3模式回顧260

14.5.4適用性261

14.6小結262

第15章訊息流模式263

15.1請求-回響模式264

15.1.1問題設定264

15.1.2模式套用265

15.1.3該模式的常見實例267

15.1.4模式回顧272

15.1.5適用性272

15.2訊息自包含模式273

15.2.1問題設定273

15.2.2模式套用274

15.2.3模式回顧276

15.2.4適用性277

15.3詢問模式277

15.3.1問題設定278

15.3.2模式套用278

15.3.3模式回顧281

15.3.4適用性283

15.4轉發流模式283

15.4.1問題設定283

15.4.2模式套用284

15.4.3模式回顧284

15.4.4適用性285

15.5聚合器模式285

15.5.1問題設定285

15.5.2模式套用286

15.5.3模式回顧289

15.5.4適用性290

15.6事務序列模式290

15.6.1問題設定291

15.6.2模式套用291

15.6.3模式回顧293

15.6.4適用性294

15.7業務握手協定(或可靠投遞模式)294

15.7.1問題設定295

15.7.2模式套用295

15.7.3模式回顧300

15.7.4適用性301

15.8小結301

第16章流量控制模式303

16.1拉取模式303

16.1.1問題設定304

16.1.2模式套用304

16.1.3模式回顧306

16.1.4適用性307

16.2託管佇列模式307

16.2.1問題設定308

16.2.2模式套用308

16.2.3模式回顧310

16.2.4適用性310

16.3丟棄模式311

16.3.1問題設定311

16.3.2模式套用311

16.3.3模式回顧313

16.3.4適用性316

16.4限流模式316

16.4.1問題設定316

16.4.2模式套用317

16.4.3模式回顧320

16.5小結320

第17章狀態管理和持久化模式321

17.1領域對象模式321

17.1.1問題設定322

17.1.2模式套用322

17.1.3模式回顧326

17.2分片模式326

17.2.1問題設定326

17.2.2模式套用327

17.2.3模式回顧329

17.2.4重要警告329

17.3事件溯源模式330

17.3.1問題設定330

17.3.2模式套用330

17.3.3模式回顧333

17.3.4適用性333

17.4事件流模式334

17.4.1問題設定334

17.4.2模式套用334

17.4.3模式回顧336

17.4.4適用性337

17.5小結337

附錄A反應式系統圖示339

附錄B一個虛構的案例341

附錄C《反應式宣言》正文355

相關詞條

熱門詞條

聯絡我們