當咱們要使用Akka相關工具與技術時,可以使用DDD來幫助咱們設計Actor,設計組成整個系統的其它組件,將應用程序分隔爲較小的系統的方式,瞭解子系統的邊界以及它們如何交互。數據庫
DDD是一套軟件架構的指導原則,DDD中最重要的概念是域模型(Domain Model)。「域」是構成嘗試建模的業務或領域的一組要求,約束和概念。DDD中,咱們專一涉及的業務領域,並圍繞它構建軟件系統模型。架構
DDD能夠幫助咱們區分系統中的業務區域部分和基礎架構部分,幫助咱們爭取的在它們周圍創造正確的抽象層,這樣就不會觸及邊界。微服務
DDD的目標是將較大的領域業務分解成更小,更易於管理的業務塊,而後分別對這些小的業務塊進行構建,這樣開發的系統不只對咱們更好理解,對領域專家來講也更好理解。工具
任何有必定規模的系統都將天然分解爲更小的組件,這些組件能夠有本身的域,有本身的邊界。學習
在Akka中,能夠在系統中建立一系列頂級的Actor,讓每個actor專門用於一個特定的有界上下文,有界上下文標識彼此隔離的而服務。設計
這種有界上下文與現代微服務體系結構很是類似,這種狀況下,每一個微服務一般表明一個有界上下文。使用Akka Clustering,集羣Sharding和Akka Http這樣的工具能夠將一個大型系統拆分爲單獨的有界上下文。對象
部署Actor的方式只是一個實現細節,而不是應用程序的固有部分,這樣能夠實現獨立的縮放系統的不一樣部分開發
瞭解Akka的actor模型,並知道如何與DDD結合觜火猴,你們便有了能夠構建強大的、可擴展的、高度可維護的系統的必要組件,能夠遵循這些已經創建好的模式保證系統的順利構建。部署
學習Akka設計的學習筆記:it
參考《Akka 應用模式》