目錄
序I
譯者序II
緻謝III
關於本書IV
1章 Akka簡介1
1.1 什麼是Akka?3
1.2 Actor簡介4
1.3 兩種擴展方法:建立我們的實例4
1.4 傳統擴展5
1.4.1 傳統擴展和持久性:一切移入數據庫6
1.4.2 傳統擴展和交互應用:輪詢8
1.4.3 傳統擴展和交互應用:Web服務9
1.5 用Akka進行擴展10
1.5.1 用Akka擴展和持久化:發送和接收消息11
1.5.2 用Akka擴展和交互應用:消息推送13
1.5.3 用Akka擴展和容錯:異步解耦14
1.5.4 Akka方式:發送和接收消息15
1.6 Actor:嚮上和嚮外擴展的編程模型16
1.6.1 異步模型16
1.6.2 Actor操作17
1.7 Akka Actor20
1.7.1 ActorSystem20
1.7.2 ActorRef、郵箱和Actor21
1.7.3 分發器21
1.7.4 Actor和網絡24
1.8 總結24
2章 搭建和運行25
2.1 剋隆、構建和測試接口25
2.1.1 用sbt進行構建26
2.1.2快進到GoTicks.com REST服務器28
2.2 探索應用中的app32
2.2.1 app結構32
2.2.2 處理銷售的Actor:TicketSeller39
2.2.3 BoxOffice Actor40
2.2.4 RestApi43
2.3 部署到雲上46
2.3.1 在Heroku上創建app46
2.3.2 在Heroku上部署並運行48
2.4 總結49
3章 Actor測試驅動開發50
3.1 測試Actor50
3.2 單嚮消息52
3.2.1 SilentActor實例52
3.2.2 SendingActor實例57
3.2.3 SideEffectingActor實例63
3.3 雙嚮消息66
3.4 總結68
4章 容錯69
4.1 容錯是什麼(不是什麼)?69
4.1.1 普通對象與異常70
4.1.2 Let it crash73
4.2 Actor生命周期76
4.2.1 啓動事件77
4.2.2 停止事件78
4.2.3 重啓事件78
4.2.4 生命周期綜閤80
4.2.5 生命周期監控82
4.3 監視83
4.3.1 監視器層次結構83
4.3.2 預定義策略85
4.3.3 自定義策略87
4.4 總結94
5章 Futures95
5.1 Future的應用實例95
5.2 Future無阻塞99
5.3 Future錯誤處理106
5.4 Future組閤111
5.5 Future組閤Actor122
5.6 總結123
6章 一個分布式Akka app125
6.1 嚮外擴展125
6.1.1 通用網絡術語125
6.1.2 采用分布式編程模型的原因126
6.2 遠程擴展127
6.2.1 把GoTicks.com app改造成分布式應用128
6.2.2 遠程REPL活動129
6.2.3 遠程查找135
6.2.4 遠程部署143
6.2.5 多JVM測試149
6.3 總結156
7 章 配置、日誌和部署158
7.1 配置158
7.1.1 嘗試Akka配置158
7.1.2 使用默認值162
7.1.3 Akka配置165
7.1.4 多係統166
7.2 日誌168
7.2.1 Akka中的日誌記錄168
7.2.2 使用日誌170
7.2.3 Akka的日誌控製171
7.3 部署基於Actor的應用173
7.4 總結178
8章 Actor的結構模式179
8.1 管道和過濾器179
8.1.1 企業集成模式:管道和過濾器179
8.1.2 Akka中的管道和過濾器180
8.2 企業集成模式:分發-收集模式185
8.2.1 適用性185
8.2.2 Akka處理並行任務187
8.2.3 使用接收者列錶實現分發組件188
8.2.4使用聚閤器模式實現收集組件189
8.2.5 組閤組件實現分發-收集模式198
8.3 企業集成模式:路由錶模式199
8.4 總結205
9章 路由消息207
9.1 企業集成路由模式207
9.2 使用Akka Router實現負載平衡208
9.2.1 Akka Router池211
9.2.2 Akka Router群組217
9.2.3 ConsistentHashing Router225
9.3 用Actor實現路由模式229
9.3.1 基於內容的路由229
9.3.2 基於狀態的路由230
9.3.3 Router的實現233
9.4 總結234
10章 消息通道235
10.1 通道類型235
10.1.1 點對點通道235
10.1.2 發布-訂閱通道236
10.2 特殊通道245
10.2.1 死信245
10.2.2 保證投遞248
10.3 總結254
11章 有限狀態機和代理256
11.1 使用有限狀態機256
11.1.1 有限狀態機簡介256
11.1.2 創建FSM模型257
11.2 FSM模型的實現258
11.2.1 實現轉換259
11.2.2 實現入口動作264
11.2.3 FSM定時器270
11.2.4 FSM的終止273
11.3 使用代理實現共享狀態274
11.3.1 使用代理簡單地共享狀態274
11.3.2 等待狀態更新276
11.4 總結277
12章 係統集成278
12.1 消息終端278
12.1.1 歸一化279
12.1.2 規範數據模型280
12.2 使用Apache Camel實現終端282
12.2.1 創建從外部係統接收消息的消費者終端283
12.2.2 實現生産者嚮外部係統發送消息291
12.3 實現HTTP接口297
12.3.1 HTTP實例298
12.3.2 用Akka-https實現REST終端300
12.4 總結307
13章 流309
13.1 基本流處理309
13.1.1 使用源和接收器復製文件313
13.1.2 實體化可運行圖316
13.1.3 用Flow處理事件321
13.1.4 處理流中的錯誤324
13.1.5 用BidiFlow創建協議326
13.2 HTTP流330
13.2.1接收HTTP流330
13.2.2 HTTP響應流333
13.2.3 內容類型和協調的自定義編組與解組334
13.3 用Graph DSL進行扇入和扇齣340
13.3.1 廣播流340
13.3.2 閤並流343
13.4 協調生産者和消費者347
13.4.1 使用緩衝區347
13.5 圖的速率隔離350
13.5.1 對較慢的消費者,對事件進行匯總351
13.5.2 快速消費者的擴展度量351
13.6 總結352
14章 集群353
14.1 為什麼使用集群?353
14.2 集群成員關係355
14.2.1 加入集群356
14.2.2 離開集群364
14.3 集群作業處理369
14.3.1 啓動集群
· · · · · · (
收起)