Akka實戰

Akka實戰

《Akka實戰》是2018年機械工業出版社出版的圖書,作者是杜雲飛。

基本介紹

  • 書名:Akka實戰
  • 作者:杜雲飛
  • 出版社:機械工業出版社
  • 出版時間:2018年5月
  • 頁數:199 頁
  • 定價:69 元
  • 裝幀:平裝
  • ISBN:978-7-111-59685-1
內容簡介,作者簡介,目錄,

內容簡介

資深Java技術專家在厚府訂大量實踐後的經驗與教訓的總結;以實戰為導向,從Akka架構、組件、工具包、分散式、集群、微服務等多個角度戒判籃展開,為構建高可用、高性能、分散式套用提供了詳盡指導。每個知識點都配備了詳細的代碼示例和配置說明,實操性極強。旋判嫌
全書一共10章:
第1章全面介紹了Akka的概念、套用場景和系統架構,為技術團隊全面了解Akka和技術選型提供了參考依據。
第2~5章詳細講解了Akka的各種模型&組件的原理及用法,如Actor、執行緒調度(Dispatcher)、信箱和訊息路由等。
第6章介紹了Akka的一些實用工具包,如Future、EventBus、AkkaStreams等。
第7~8章訂頁燥主要講解了Akka分散式&集群相關的內容,如遠程Actor、遠程路由、事件監聽、集群搭建、集群分片、持久化等。
第9章講解了如何使用Akka構建HTTP和WebSocket服務,甩洪才棄並實現了一個完整的圖文聊天系統。
第10章介紹了一款“全家桶式”的微服務框架Lagom,它基於Akka和Play而構建,提供了一整套微服務解決方案。

作者簡介

杜雲飛
資深Java技術專家,上海小蟲科技合伙人兼CTO,在Akka方面有豐富的實踐經驗。
從事軟體開發和架構相關工作近10年,擅長Java體系下各項技術,在大型企業軟體平台(如製造業ERP、財稅雲平台、智慧城市服務平台、電商系統等)的開發和架構方面經驗豐富。
曾穿梭於各個技術崗位之間,並樂此不彼,期間獨立創業近兩年。多次受邀為惠普、通用等企業做技術分享、培訓和諮詢。

目錄

Contents目錄
前言
第1章認識Akka1
1.1Akka簡介1
1.1.1技術背景1
1.1.2Akka是什麼3
1.2Akka套用場景4
1.3Akka架構體系4
1.3.1Actor模型4
1.3.2體系結構4
1.4本章小結7
第2章走進Actor8
2.1Actor組件8
2.1.1Akka中的Actor8
2.1.2ActorSystem與監管9
2.1.3生命周期監控9
2.1.4引用與路徑10
2.2Akka環境搭建10
2.2.1環境準備11
2.2.2使用LightbendActivator平台12
2.3創建一個Actor14
2.3.1定義Actor14
2.3.2創建Actor實例14
2.3.3工廠模式---Props/Creator15
2.4傳送-接收訊息16
2.4.1tell方法16
2.4.2ask方法17
2.4.3訊息轉發18
2.5查找一個Actor18
2.6訊息不可變21
2.7Actor行為切換21
2.8Actor生命周期25
2.9停掉一個Actor26
2.10監督與容錯處理29
2.11CircuitBreaker(熔斷)33
2.12配置相關35
2.13本章小結36
第3章執行緒調度38
3.1什麼是Dispatcher?38
3.2Executor選擇39
3.3配置Dispatcher39
3.4使用Dispatcher41
3.5PinnedDispatcher41
3.6本章小結42
第4章信箱43
4.1訊息處理順序43
4.2默認信箱配置44
4.3內置信箱45
4.3.1內置信箱說明45
4.3.2自定義優先權45
4.3.3控制指令優先48
4.4Actor使用信箱的多種方式49
4.4.1配置Actor信箱49
4.4.2配置dispatcher信箱49
4.4.3實現RequiresMessageQueue接口50
4.5自定義信箱類型50
4.6本章小結52
第5章訊息路由53
5.1Router和Routee53
5.2路由器及路由邏輯53
5.3路由Actor56
5.3.1Pool方式56
5.3.2Group方全催式58
5.4常見路由類型59
5.4.1廣播-Broadcast60
5.4.2最快回響-ScatterGatherFirstCompleted61
5.4.3隨機-最快回響-TailChopping62
5.4.4創建可修改容量的池62
5.5特殊訊息處再檔鴉想理63
5.5.1Broadcast訊息64
5.5.2PoisonPill訊息64
5.5.3其他管理類訊息64
5.6本章小結65
第6章實用工具67
6.1定時調度—Scheduler67
6.2處理並髮結果—Future68
6.2.1Future常規用法68
6.2.2函式式Future70
6.3事件匯流排72
6.3.1實現事件匯流排72
6.3.2事件流處理74
6.4日誌處理75
6.4.1基礎配置76
6.4.2使用slf4j76
6.5Akka擴展78
6.5.1TypedActor初探78
6.5.2自定義擴展81
6.5.3集成Spring83
6.6AkkaI/O87
6.6.1TCP服務87
6.6.2UDP服務90
6.7AkkaStreams91
6.7.1Streams組件91
6.7.2組合Source、Sink94
6.7.3案例:日誌處理95
6.7.4錯誤處理99
6.7.5關聯Actor101
6.8本章小結102
第7章遠程103
7.1遠程介紹103
7.1.1JavaRPC103
7.1.2Akka遠程106
7.2創建遠程ActorSystem107
7.3Actor遠程訪問108
7.4創建遠程Actor109
7.5遠程路由器110
7.6遠程事件113
7.7序列化114
7.7.1Protobuf框架114
7.7.2序列化API115
7.8本章小結116
第8章集群117
8.1Akka集群概述117
8.1.1種子節點118
8.1.2領導節點118
8.1.3節點狀態及生命周期118
8.1.4故障檢測119
8.2創建Akka集群119
8.2.1代碼及集群配置119
8.2.2啟動集群122
8.2.3加入集群123
8.2.4akka-cluster集群工具123
8.3集群示例—實現文章單詞統計125
8.3.1示例分析125
8.3.2代碼實現127
8.4使用路由133
8.4.1Group路由133
8.4.2Pool路由133
8.5集群指標136
8.5.1指標收集136
8.5.2基於指標的負載均衡138
8.6集群單例139
8.7集群客戶端140
8.7.1集群客戶端概述140
8.7.2使用ClusterClient141
8.7.3事件監聽142
8.8集群分片143
8.8.1分片概念143
8.8.2持久化Actor144
8.8.3分片示例148
8.9本章小結155
第9章HTTP服務156
9.1HTTP協定156
9.1.1header信息157
9.1.2狀態碼159
9.2AkkaHTTP159
9.2.1配置依賴159
9.2.2HTTP服務端160
9.2.3請求和回響160
9.2.4HTTP客戶端163
9.2.5使用RoutingDSL163
9.2.6常用Directive165
9.3AkkaWebSocket166
9.3.1WebSocket協定167
9.3.2AkkaWebSocket167
9.3.3WebSocket套用之聊天室169
9.4本章小結176
第10章微服務全家桶之Lagom177
10.1Lagom簡介177
10.2Lagom初探178
10.3搭建Lagom服務181
10.3.1項目結構181
10.3.2編寫Lagom服務182
10.4持久化實體186
10.4.1持久化簡介186
10.4.2PersistentEntityAPI187
10.4.3持久化示例187
10.4.4MySQL支持191
10.5Lagom部署(SandBox)192
10.5.1安裝ConductRSandBox192
10.5.2部署Maven項目195
10.6本章小結199
2.8Actor生命周期25
2.9停掉一個Actor26
2.10監督與容錯處理29
2.11CircuitBreaker(熔斷)33
2.12配置相關35
2.13本章小結36
第3章執行緒調度38
3.1什麼是Dispatcher?38
3.2Executor選擇39
3.3配置Dispatcher39
3.4使用Dispatcher41
3.5PinnedDispatcher41
3.6本章小結42
第4章信箱43
4.1訊息處理順序43
4.2默認信箱配置44
4.3內置信箱45
4.3.1內置信箱說明45
4.3.2自定義優先權45
4.3.3控制指令優先48
4.4Actor使用信箱的多種方式49
4.4.1配置Actor信箱49
4.4.2配置dispatcher信箱49
4.4.3實現RequiresMessageQueue接口50
4.5自定義信箱類型50
4.6本章小結52
第5章訊息路由53
5.1Router和Routee53
5.2路由器及路由邏輯53
5.3路由Actor56
5.3.1Pool方式56
5.3.2Group方式58
5.4常見路由類型59
5.4.1廣播-Broadcast60
5.4.2最快回響-ScatterGatherFirstCompleted61
5.4.3隨機-最快回響-TailChopping62
5.4.4創建可修改容量的池62
5.5特殊訊息處理63
5.5.1Broadcast訊息64
5.5.2PoisonPill訊息64
5.5.3其他管理類訊息64
5.6本章小結65
第6章實用工具67
6.1定時調度—Scheduler67
6.2處理並髮結果—Future68
6.2.1Future常規用法68
6.2.2函式式Future70
6.3事件匯流排72
6.3.1實現事件匯流排72
6.3.2事件流處理74
6.4日誌處理75
6.4.1基礎配置76
6.4.2使用slf4j76
6.5Akka擴展78
6.5.1TypedActor初探78
6.5.2自定義擴展81
6.5.3集成Spring83
6.6AkkaI/O87
6.6.1TCP服務87
6.6.2UDP服務90
6.7AkkaStreams91
6.7.1Streams組件91
6.7.2組合Source、Sink94
6.7.3案例:日誌處理95
6.7.4錯誤處理99
6.7.5關聯Actor101
6.8本章小結102
第7章遠程103
7.1遠程介紹103
7.1.1JavaRPC103
7.1.2Akka遠程106
7.2創建遠程ActorSystem107
7.3Actor遠程訪問108
7.4創建遠程Actor109
7.5遠程路由器110
7.6遠程事件113
7.7序列化114
7.7.1Protobuf框架114
7.7.2序列化API115
7.8本章小結116
第8章集群117
8.1Akka集群概述117
8.1.1種子節點118
8.1.2領導節點118
8.1.3節點狀態及生命周期118
8.1.4故障檢測119
8.2創建Akka集群119
8.2.1代碼及集群配置119
8.2.2啟動集群122
8.2.3加入集群123
8.2.4akka-cluster集群工具123
8.3集群示例—實現文章單詞統計125
8.3.1示例分析125
8.3.2代碼實現127
8.4使用路由133
8.4.1Group路由133
8.4.2Pool路由133
8.5集群指標136
8.5.1指標收集136
8.5.2基於指標的負載均衡138
8.6集群單例139
8.7集群客戶端140
8.7.1集群客戶端概述140
8.7.2使用ClusterClient141
8.7.3事件監聽142
8.8集群分片143
8.8.1分片概念143
8.8.2持久化Actor144
8.8.3分片示例148
8.9本章小結155
第9章HTTP服務156
9.1HTTP協定156
9.1.1header信息157
9.1.2狀態碼159
9.2AkkaHTTP159
9.2.1配置依賴159
9.2.2HTTP服務端160
9.2.3請求和回響160
9.2.4HTTP客戶端163
9.2.5使用RoutingDSL163
9.2.6常用Directive165
9.3AkkaWebSocket166
9.3.1WebSocket協定167
9.3.2AkkaWebSocket167
9.3.3WebSocket套用之聊天室169
9.4本章小結176
第10章微服務全家桶之Lagom177
10.1Lagom簡介177
10.2Lagom初探178
10.3搭建Lagom服務181
10.3.1項目結構181
10.3.2編寫Lagom服務182
10.4持久化實體186
10.4.1持久化簡介186
10.4.2PersistentEntityAPI187
10.4.3持久化示例187
10.4.4MySQL支持191
10.5Lagom部署(SandBox)192
10.5.1安裝ConductRSandBox192
10.5.2部署Maven項目195
10.6本章小結199

相關詞條

熱門詞條

聯絡我們