天天看點

Axon架構快速入門和DDD項目實踐專欄介紹專欄大綱

Axon 架構是基于JVM平台的開源産品,由Allard Buijze于2009年創立。2017年7月,成立了一家獨立公司AxonIQ,專門與Axon産品合作。

Axon 架構的程式遵循基于領域驅動設計(DDD)思想、指令查詢職責分離 (CQRS)、事件驅動架構(Event Driven Architecture,EDA)的架構模式。這些原則的結合,使基于Axon的應用程式更加健壯、适應性更強。

本專欄基于Axon開源架構、DDD領域驅動設計思想、CQRS讀寫分離和事件溯源(Event Sourcing)架構模式來實作DDD經典案例貨物運輸系統(Cargo Tracker Application)。

Axon架構快速入門和DDD項目實踐專欄介紹專欄大綱

專欄介紹

Axon是一個輕量級架構,能夠幫助開發者在架構層面建構可擴充和可伸縮的應用。

Axon架構提供了一個創新的、功能強大的方式,可以幫助在微服務架構中建構事件驅動的應用。Axon架構源于完善的CQRS(指令查詢職責分離)和Event Sourcing(事件溯源)架構模式,以及DDD領域驅動設計思想。

Axon架構提供了重要的建構塊來幫助快速實作應用開發,如聚合、倉儲、指令總線(Command Bus)、事件總線(Event Bus)、事件的排程機制等等。此外,Axon提供了對注解的支援,它允許你建構聚合和事件監聽器,而不必包含任何應用代碼捆綁到Axon架構的特有邏輯。

DDD領域模組化思想提出了一些概念、一些模式,讓應用代碼看起來更貼合業務語義,更貼近業務人員的思維,盡力去消除開發人員和業務人員之間的溝通障礙,另外非常重要的就是它制訂了如何劃分業務領域中各種操作邊界的原則,劃定上下文範圍,防止出現盤根錯節的複雜調用關系。

Axon架構實作了上述設計思想,建立了一整套讓可以開發人員在專注于業務邏輯的實作,同時又能很簡單地利用進階技術進行靈活處理的架構體系。

Axon架構快速入門和DDD項目實踐專欄介紹專欄大綱

專欄大綱

2003年,Eric Evans發表了Domain Driven Design(DDD,領域驅動設計)這一著作,并在書中對領域驅動作出了開創性的理論闡述,至今領域驅動設計已問世十幾年。

近幾年來随着微服務盛行, ES (Event Sourcing)事件溯源和CQRS (Command Query Responsibility Segregation)讀寫分離也成為了一個越來越流行的概念,使用ES和CQRS好處在此不做贅述,但是也存在頗多弊端,比如事件數量巨大、回溯狀态需要提前預熱、缺少成熟的架構支撐等。在這種情況下,2009年Allard Buijze在JVM平台開源了Axon Framework用來解決此問題,簡單說來Axon就是內建了DDD、ES和CQRS于一身,落地實作的一套架構方案,并成立了一家公司Axon IQ,專門與Axon産品合作。

Axon架構快速入門和DDD項目實踐專欄介紹專欄大綱

本技術專欄以貨物運輸系統(Cargo Tracker Application )為示例,我們将基于Axon架構和DDD領域驅動設計思想,采用CQRS指令查詢職責分離和事件溯源(Event Sourcing)架構模式來實作。

Axon開源架構忠實地貫徹了DDD領域模組化思想,有助于提升應用項目長遠可維護性和可擴充性。

Axon架構快速入門和DDD項目實踐專欄介紹專欄大綱

主要内容如下:

  • Axon架構快速入門和DDD項目實踐
  • 基于CQRS指令查詢職責分離和Event Sourcing事件溯源的架構設計
  • Axon架構詳細介紹:領域模型(Domain Model)元件和排程模型(Dispatch Model)元件
  • Axon架構詳細介紹:基礎設施元件Axon Server和控制台示範
  • 基于Axon架構的Spring Boot微服務應用的設計和建立
  • 基于Axon架構的Spring Boot微服務應用包結構設計
  • 試運作基于Axon架構和CQRS/ES模式的預訂微服務應用
  • 基于Axon架構實作領域模型:聚合Aggregate和狀态State
  • 基于Axon架構實作領域模型:指令和指令處理程式
  • 基于Axon架構實作領域模型:建立事件模型和釋出事件
  • 基于Axon架構實作領域模型:聚合狀态維護(State Maintenance)
  • 基于Axon架構實作領域模型:AssignRouteToCargoCommand指令處理程式
  • 基于Axon架構實作領域模型:ChangeDestinationCommand指令處理程式
  • CQRS架構中的查詢端:聚合投影的資料存儲和投影類的實作
  • CQRS架構中的查詢端:查詢類和查詢處理程式的實作
  • 基于Axon架構實作領域模型:Saga分布式事務快速入門
  • 基于Axon架構實作領域模型:Saga分布式事務的實作
  • 基于Axon架構實作領域服務:REST API和事件處理程式
  • 基于Axon架構實作應用服務(Application Service)
  • 領域驅動設計-項目整體架構和微服務應用包結構詳細介紹
  • 領域驅動設計-預訂微服務應用中領域模型的包結構和代碼分析
  • 基于Axon架構和DDD設計思想的微服務應用代碼分析
  • 領域驅動設計-啟動Axon Server和貨物運輸系統微服務應用
Axon架構快速入門和DDD項目實踐專欄介紹專欄大綱

繼續閱讀