本文介紹事件驅動架構EDA(Event Driven Architecture)的概念、優勢、架構圖和使用情境。
什麼是事件驅動架構
事件驅動架構是一種松耦合、分布式的驅動架構,收集到某應用產生的事件後即時對事件採取必要的處理後路由至下遊系統,無需等待系統響應。使用事件匯流排EventBridge可以構建各種簡單或複雜的事件驅動架構,以標準化的CloudEvents 1.0協議串連雲產品和應用、應用和應用等。
事件驅動架構體繫結構具備以下三個能力:
- 事件收集:負責收集各種應用發生的事件,如建立訂單,退換貨訂單等其他狀態變更。
- 事件處理:對事件進行脫敏處理,並對事件進行初步的過濾和篩選。
- 事件路由:分析事件內容並將事件路由分發至下遊產品。
優勢
事件驅動架構具有以下優勢:
- 降低耦合
降低事件生產者和訂閱者的耦合性。事件生產者只需關注事件的發生,無需關注事件如何處理以及被分發給哪些訂閱者。任何一個環節出現故障,不會影響其他業務正常運行。
- 非同步執行
事件驅動架構適用於非同步情境,即便是需求高峰期,收集各種來源的事件後保留在事件匯流排中,然後逐步分發傳遞事件,不會造成系統擁塞或資源過剩的情況。
- 可擴充性
事件驅動架構中路由和過濾能力支援劃分服務,便於擴充和路由分發。
- 敏捷性
事件驅動架構支援與各種阿里雲產品和應用整合,支援事件路由至任何系統服務,提供各種敏捷高效的部署方案。
事件驅動架構圖
下圖是人力資源服務系統的事件驅動架構樣本,事件匯流排EventBridge收集人力資源服務系統產生的新員工入職事件,並對此事件進行路由和轉寄。這種體繫結構可以提高網站的可擴充性,同時能更輕便地應對企業架構升級和系統拓展。
事件驅動架構擴充
下圖是訂單服務系統的事件驅動架構樣本,該架構中事件匯流排EventBridge負責收集各種訂單狀態的事件後分發事件至目標端。