《Akka入門與實踐》是2018年5月人民郵電出版社出版的圖書,作者是[加]Jason Goodwin(賈森·古德溫)。
基本介紹
- 中文名:Akka入門與實踐
- 作者:[加]Jason Goodwin(賈森·古德溫)
- ISBN:9787115453549
- 頁數:214頁
- 定價:49元
- 出版社:人民郵電出版社
- 出版時間:2018年5月
- 裝幀:平裝
- 開本:16開
內容簡介,圖書目錄,
內容簡介
《Akka入門與實踐》主要面向使用Akka工具集來構建大規模分散式應用程式的Java和Scala開發 者。Akka入門與實踐 介紹了分散式系統的基本概念以及如何使用Akka來構建容錯性高、可橫向擴展的分散式應用程式。
《Akka入門與實踐》的主要內容包括:Akka工具集、Actor模型、回響式編程、Actor及Future的使用、Akka訊息傳遞模式、Actor生命周期、監督機制、狀態與錯誤處理、Akka並發編程、路由、阻塞IO的處理、Akka Cluster、CAP理論、Akka信箱問題的處理、Akka Testkit、領域驅動設計等。
《Akka入門與實踐》貫穿使用了分散式鍵值存儲以及文章解析服務兩個實例,將原理與實踐結合,介紹了使用Akka設計並實現分散式應用程式的方法。
圖書目錄
第1章 初識Actor 1
1.1 本章概述 1
1.2 什麼是Akka 1
1.2.1 Actor模型的起源 1
1.2.2 什麼是Actor 2
1.2.3 Actor和訊息傳遞 2
1.3 本書示例系統 7
1.3.1 示例1:處理分散式狀態 7
1.3.2 示例2:完成更多工作 8
1.4 配置環境 8
1.4.1 選擇一門語言 9
1.4.2 安裝Java——Oracle JDK8 9
1.4.3 確認Java環境配置 10
1.4.4 安裝Scala 10
1.4.5 安裝Typesafe Activator 10
1.4.6 新建項目 11
1.4.7 安裝IDE 12
1.5 創建第 一個Akka應用程式——設定SBT項目 15
1.5.1 將Akka添加到build.sbt 16
1.5.2 創建第 一個Actor 17
1.5.3 使用單元測試驗證代碼 21
1.5.4 運行測試用例 24
1.6 課後作業 25
1.7 小結 26
第 2章 Actor與並發 27
2.1 回響式系統設計 27
2.2 回響式四準則 28
2.2.1 靈敏性 28
2.2.2 伸縮性 28
2.2.3 容錯性 28
2.2.4 事件驅動/訊息驅動 28
2.2.5 回響式準則的相關性 29
2.3 剖析Actor 29
2.3.1 Java Actor API 29
2.3.2 Scala Actor API 32
2.4 Actor的創建 33
2.5 Promise、Future和事件驅動的編程模型 36
2.5.1 阻塞與事件驅動API 36
2.5.2 使用Future進行回響的Actor 40
2.5.3 理解Future和Promise 45
2.5.4 在失敗情況下執行代碼 49
2.5.5 從失敗中恢復 49
2.5.6 異步地從失敗中恢復 50
2.5.7 鏈式操作 51
2.5.8 組合Future 51
2.5.9 處理Future列表 52
2.5.10 Future速查表 53
2.5.11 準備資料庫與訊息 54
2.5.12 編寫客戶端 59
2.6 課後作業 62
2.6.1 基本知識 62
2.6.2 項目作業 62
2.7 小結 63
第3章 傳遞訊息 64
3.1 示例問題 64
3.2 訊息傳遞 65
3.2.1 訊息是不可變的 66
3.2.2 Ask訊息模式 69
3.2.3 Tell 78
3.3 課後作業 88
3.4 小結 88
第4章 Actor的生命周期——處理狀態與錯誤 90
4.1 分散式計算的8個誤區 90
4.1.1 網路是可靠的 90
4.1.2 沒有延遲 91
4.1.3 頻寬是無限的 91
4.1.4 網路是安全的 92
4.1.5 網路拓撲不會改變 92
4.1.6 只有一個管理員 92
4.1.7 網路傳輸沒有開銷 93
4.1.8 網路是同構的 93
4.2 錯誤 93
4.2.1 隔離錯誤 94
4.2.2 監督 95
4.3 狀態 102
4.3.1 線上/離線狀態 103
4.3.2 條件語句 104
4.3.3 熱交換(Hotswap):Become/Unbecome 105
4.3.4 通過重啟轉移狀態 113
4.4 課後作業 113
4.5 小結 114
第5章 縱向擴展 115
5.1 摩爾定律 115
5.2 多核架構的分散式問題 116
5.3 選擇Future或Actor進行並發編程 117
5.4 並行編程 117
5.4.1 使用Future進行並行編程 118
5.4.2 使用Actor進行並行編程 119
5.5 使用Dispatcher 123
5.5.1 Dispatcher解析 123
5.5.2 Executor 124
5.5.3 創建Dispatcher 124
5.5.4 決定何時使用哪種Dispatcher 126
5.5.5 默認Dispatcher 128
5.5.6 使用Future的阻塞IO Dispatcher 130
5.5.7 用於解析文章的Dispatcher 132
5.5.8 並行**最佳化 135
5.6 課後作業 135
5.7 小結 136
第6章 橫向擴展——集群化 137
6.1 Akka Cluster介紹 137
6.2 巨型單體套用vs微服務 137
6.3 集群的定義 138
6.3.1 失敗檢測 139
6.3.2 通過gossip協定達到**終一致性 139
6.4 CAP理論 140
6.4.1 C –一致性(Consistency) 140
6.4.2 A –可用性(Availability) 140
6.4.3 P –分區容錯性(Partition Tolerance) 140
6.4.4 CAP理論中的妥協 141
6.5 使用Akka Cluster構建系統 143
6.5.1 創建集群 143
6.5.2 集群成員的狀態 150
6.5.3 通過路由向集群傳送訊息 151
6.5.4 編寫分散式文章解析服務 151
6.5.5 用於集群服務的集群客戶端 153
6.5.6 集群設計 159
6.6 結合分區與冗餘 164
6.7 遠程Actor定址 166
6.8 課後作業 167
6.9 小結 167
第7章 處理信箱問題 169
7.1 搞垮**可能出問題的服務 169
7.1.1 回響時間變長 170
7.1.2 崩潰 171
7.2 恢復能力 171
7.3 在高負載情況下保持回響速度 175
7.4 課後作業 181
7.5 小結 182
第8章 測試與設計 183
8.1 示例問題 183
8.2 應用程式設計 184
8.3 設計、構建並測試領域模型 186
8.3.1 行為說明 186
8.3.2 設計領域模型 187
8.3.3 構建並測試領域模型 188
8.3.4 基於行為說明編寫代碼 190
8.4 測試Actor 192
8.4.1 測試Actor行為及狀態 192
8.4.2 測試訊息流 195
8.5 測試建議 198
8.6 課後作業 199
8.7 小結 200
第9章 尾聲 201
9.1 其他Akka功能及模組 201
9.1.1 Akka中的日誌 202
9.1.2 訊息信道與EventBus 204
9.1.3 Agent 206
9.1.4 Akka Persistence 209
9.1.5 Akka I/O 210
9.1.6 Akka Streams與HTTP 210
9.2 部署工具 210
9.3 監控日誌與事件 212
9.4 下一步 212
9.4.1 編寫一些Actor代碼 213
9.4.2 Coursera課程 213
9.5 小結 214