內容簡介
對於想要學習Akka的Java 和 Scala 開發者們,有很多技術資源可供參考,但是如要想知道如何去應用這些技術就需要不同的思維方式瞭。為瞭幫助你正確地使用Akka,這本實用的實踐指南提供瞭若乾高級的設計模式,還包括瞭如何以及何時應用那些模式去解決在大型分布式係統中遇到的實際問題的一些案例。
作者簡介
Michael Nash是Lightbend 的總監。過去30 多年間,他為各種規模的公司及客戶設計、開發、發布瞭很多軟件項目。作為項目管理和架構實踐的軟件工藝倡導者,他是“安全堆棧”*早的實踐者之一,在Scala、Akka 和Spray 方麵有五年以上的工作經驗。他大部分業餘時間緻力於“安全響應式平颱”的相關工作,在會議中發錶主題演講,以及在軟件相關領域撰寫書籍。Wade Waldron是Lightbend 的高級顧問。他現在針對Lightbend 響應式平颱提供培訓和谘詢服務。在Lightbend 之外,Wade 在過去9 年中一直在建立堅實的軟件和遊戲,重點是設計測試驅動、設計域驅動、設計麵嚮服務的架構、設計事件驅動架構以及敏捷開發。
高中開始接觸編程,大學期間參加各種比賽,獲得許多奬項。也因為比賽,大三就獲得瞭微軟的實習機會,學習到很多學校學不到的東西。也因此開始一有時間就會去各種公司實習,瞭解不同公司的企業文化。比較典型的程序員,熱愛編程,喜歡研究算法,也喜歡學習各種好玩的開源項目。由於自身工作經曆,對於分布式係統的實踐經驗有豐富的經驗。
目錄
目錄
前言 .......................................................................................... xvii
第1 章 Actor 模型 ........................................................................1
現實是最終一緻的 .................................................................................................1
解構Actor 模型 .....................................................................................................3
所有的計算都在一個actor 中執行 .........................................................................4
actor 之間隻能通過消息進行通信 .........................................................................5
actor 可以創建子actor ...........................................................................................6
actor 可以改變自己的狀態或行為 .........................................................................8
一切都是actor .......................................................................................................9
Actor 模型的使用 .................................................................................................10
定義清晰的邊界 ................................................................................................... 11
何時適閤使用Actor 模型 ....................................................................................13
結論 .....................................................................................................................13
第2 章 Akka 簡介 .......................................................................15
Akka 是什麼......................................................................................................... 15
Akka 是開源的 .............................................................................................. 15
Akka 正在蓬勃發展 .......................................................................................16
Akka 是為分布式設計的 ...............................................................................16
Akka 組件 ............................................................................................................17
Akka actor .....................................................................................................17
子actor .......................................................................................................... 18
remoting :不同JVM 上的actor ....................................................................20
clustering :集群成員的自動化管理 ..............................................................20
Akka HTTP ...................................................................................................24
TestKit ........................................................................................................... 25
contrib ........................................................................................................... 25
Akka OSGi ................................................................................................... 25
Akka HTTP ...................................................................................................26
Akka Streams ................................................................................................26
Akka 實現的Actor 模型 ......................................................................................26
Actor 模型中的Akka actor ..................................................................................26
消息傳遞 .......................................................................................................27
actor 係統 ...................................................................................................... 28
Akka Typed 項目 .................................................................................................. 28
結論 ....................................................................................................................29
第3 章 分布式領域驅動設計 ........................................................31
DDD 概述 ............................................................................................................31
DDD 的好處 .........................................................................................................32
DDD 組件 ............................................................................................................33
域實體 ..................................................................................................................34
域值對象 .............................................................................................................34
聚閤與聚閤根 ..................................................................................................... 35
倉儲 .....................................................................................................................37
工廠和對象創建 ................................................................................................... 38
域服務 .................................................................................................................. 38
有界上下文 ..........................................................................................................39
結論 ....................................................................................................................41
第4 章 優秀的Actor 設計 ...........................................................43
大係統小做 ..........................................................................................................43
封裝actor 中的狀態 ............................................................................................44
使用字段封裝狀態 .......................................................................................44
使用“狀態”容器封裝狀態 ........................................................................47
使用become 封裝狀態 ................................................................................. 48
將futures 與actors 混閤 ............................................................................... 50
Ask 模式和替代方案 ............................................................................................ 54
Ask 模式的問題 ........................................................................................... 55
附帶的復雜性 ................................................................................................ 57
Ask 的替代方案 ........................................................................................... 57
命令與事件 .......................................................................................................... 59
構造函數的依賴注入 ....................................................................................61
使用路徑查找actor ......................................................................................61
結論 ....................................................................................................................62
第5 章 數據流 ............................................................................63
吞吐量與延遲 ......................................................................................................63
流 .........................................................................................................................64
路由器 ..................................................................................................................66
郵箱 ..................................................................................................................... 68
無界郵箱 ...................................................................................................... 68
有界郵箱 ......................................................................................................69
拉取的工作模式 ..................................................................................................70
背壓 .....................................................................................................................73
ack .................................................................................................................73
高水位標記 ...............
Akka應用模式:分布式應用程序設計實踐指南 下載 mobi epub pdf txt 電子書