可調整的訂單處理

Azure Cosmos DB
Azure HDInsight

此範例案例與需要高度可調整且具復原性架構以供在線訂單處理的組織相關。 潛在的應用程式包括電子商務和零售銷售點、訂單履行,以及庫存保留和追蹤。

架構

可調整訂單處理管線的範例架構圖表。

下載此架構的 Visio 檔案

資料流程

此架構詳細說明訂單處理管線的主要元件。 數據流會流經案例,如下所示:

  1. 事件訊息會透過客戶面向應用程式(透過 HTTP 同步方式)和各種後端系統進入系統(以異步方式透過 Apache Kafka)。 這些訊息會傳遞至命令處理管線。
  2. 每個事件訊息都會由命令處理器微服務內嵌並對應至其中一組已定義的命令。 命令處理器會從事件串流快照集資料庫擷取與執行命令相關的任何目前狀態。 接著會執行命令,並將命令的輸出發出為新的事件。
  3. 發出作為命令輸出的每個事件都會使用 Azure Cosmos DB 認可至事件串流資料庫。
  4. 針對認可至事件數據流資料庫的每個資料庫插入或更新,Azure Cosmos DB 變更摘要會引發事件。 下游系統可以訂閱與該系統相關的任何事件主題。
  5. 來自 Azure Cosmos DB 變更摘要的所有事件也會傳送至快照集事件串流微服務,其會計算任何由已發生事件所造成的狀態變更。 新的狀態接著會認可至儲存在 Azure Cosmos DB 中的事件串流快照集資料庫。 快照集資料庫會針對所有數據元素的目前狀態,提供全域散發的低延遲數據源。 事件串流資料庫提供透過架構傳遞的所有事件訊息的完整記錄,以啟用強固的測試、疑難解答和災害復原案例。

元件

  • Azure Cosmos DB 是 Microsoft 全球散發的多模型資料庫,可讓您的解決方案彈性且獨立地跨任意數目的地理區域調整輸送量和記憶體。 它提供輸送量、延遲、可用性和一致性保證,並提供完整的服務等級協定(SLA)。 此案例使用 Azure Cosmos DB 進行事件串流記憶體和快照集記憶體,並套用 Azure Cosmos DB 變更摘要 功能以提供數據一致性和錯誤復原。
  • Azure HDInsight 上的 Apache Kafka 是 Apache Kafka 的受控服務實作,這是開放原始碼分散式串流平臺,可用於建置即時串流數據管線和應用程式。 Kafka 也提供類似消息佇列的訊息代理程式功能,用於發佈和訂閱具名數據流。 此案例會使用 Kafka 在訂單處理管線中處理傳入和下游事件。

案例詳細資料

此案例採用事件來源方法,使用透過 微服務實作的功能程序設計模型。 每個微服務都會被視為數據流處理器,而且所有商業規則都是透過微服務實作。 此方法可讓高可用性和復原能力、異地複寫,以及快速的效能。

使用 Azure Cosmos DB 和 HDInsight 等受控 Azure 服務,可藉由使用 Microsoft 在全球分散的雲端規模數據記憶體和擷取方面的專業知識來降低成本。 此案例特別解決電子商務或零售案例;如果您有數據服務的其他需求,您應該檢閱 Azure 中可用的完全受控智慧資料庫服務清單。

潛在的使用案例

其他相關的使用案例包括:

  • 電子商務或零售銷售點後端系統。
  • 零售或製造業的庫存管理系統。
  • 訂單履行系統。
  • 與訂單處理管線相關的其他整合案例。

考量

這些考慮會實作 Azure Well-Architected Framework 的支柱,這是一組指導原則,可用來改善工作負載的品質。 如需詳細資訊,請參閱 Microsoft Azure Well-Architected Framework

許多技術選項都可用於即時訊息擷取、數據儲存、串流處理、分析數據的儲存,以及分析和報告。

微服務已成為熱門的架構樣式,用於建置可復原、高延展性、可獨立部署,而且能夠快速發展的雲端應用程式。 微服務需要不同的方法來設計和建置應用程式。 如需建置和執行微服務架構的指引,請參閱 在 Azure 上設計微服務。

可用性

此案例的事件來源方法可讓系統元件鬆散結合並彼此獨立部署。 Azure Cosmos DB 提供 高可用性 ,並協助組織管理與一致性、可用性和效能相關聯的取捨,全都具有 對應的保證。 HDInsight 上的 Apache Kafka 也專為 高可用性而設計。

Azure 監視器提供統一的使用者介面,以監視各種 Azure 服務。 如需詳細資訊,請參閱 在 Microsoft Azure 中監視。 事件中樞和串流分析都與 Azure 監視器整合。

如需其他可用性考慮,請參閱 可用性檢查清單

延展性

HDInsight 上的 Kafka 允許 設定 Kafka 叢集的記憶體和延展性 。 Azure Cosmos DB 提供快速、可預測的效能,並在 您的應用程式成長時順暢地 調整規模。 此案例的事件來源微服務架構也可讓您更輕鬆地調整系統並擴充其功能。

如需其他延展性考慮,請參閱 Azure 架構中心提供的效能效率檢查清單

安全性

安全性可提供針對蓄意攻擊和濫用寶貴數據和系統的保證。 如需詳細資訊,請參閱 安全性要素概觀。

Azure Cosmos DB 安全性模型會驗證使用者,並提供其數據和資源的存取權。 如需詳細資訊,請參閱 Azure Cosmos DB 資料庫安全性

如需設計安全解決方案的一般指引,請參閱 Azure 安全性檔

復原

此範例案例中的事件來源架構和相關聯的技術,讓此案例在發生失敗時具有高度復原性。 如需設計復原解決方案的一般指引,請參閱 設計適用於 Azure 的復原應用程式。

成本最佳化

成本優化是考慮如何減少不必要的費用,並提升營運效率。 如需詳細資訊,請參閱 成本優化要素概觀。

若要檢查執行此案例的成本,所有服務都會在成本計算機中預先設定。 若要查看特定案例的價格如何變更,請變更適當的變數以符合您預期的數據量。 在此案例中,範例定價僅包含 Azure Cosmos DB 和 Kafka 叢集,以處理從 Azure Cosmos DB 變更摘要引發的事件。 原始系統和其他下游系統的事件處理器和微服務不包含在內,而且其成本高度取決於這些服務的數量和規模,以及為實作這些服務而選擇的技術。

Azure Cosmos DB 的貨幣是要求單位 (RU)。 使用要求單位時,您不需要保留讀取/寫入容量或布建 CPU、記憶體和 IOPS。 Azure Cosmos DB 支援具有不同作業的各種 API,範圍從簡單的讀取和寫入到複雜的圖形查詢。 由於並非所有要求都相等,因此會根據為要求提供服務所需的計算量,指派要求單位的正規化數量。 解決方案所需的要求單位數目取決於資料元素大小,以及每秒資料庫讀取和寫入作業的數目。 如需詳細資訊,請參閱 Azure Cosmos DB 中的要求單位。 這些預估價格是以兩個 Azure 區域中執行的 Azure Cosmos DB 為基礎。

我們已根據您預期的活動量提供三個範例成本配置檔:

  • 小型:此定價範例會與 5 個保留的 RU 相互關聯,以及 Azure Cosmos DB 中的 1 TB 數據存放區,以及小型 (D3 v2) Kafka 叢集。
  • 中型:此定價範例會與 50 個 RU 相互關聯,以及 Azure Cosmos DB 中 10 TB 的數據存放區,以及中型 (D4 v2) Kafka 叢集。
  • 大型:此定價範例會與 Azure Cosmos DB 中保留的 30 TB 資料存放區與 500 RU 相互關聯,以及大型 (D5 v2) Kafka 叢集。

參與者

本文由 Microsoft 維護。 原始投稿人如下。

主要作者:

下一步

此範例案例是以 jet.com 針對其端對端順序處理管線所建置的此架構更廣泛的版本為基礎。 如需詳細資訊,請參閱 建置中的 jet.com 技術客戶配置檔jet.com 簡報

請參閱此其他內容:

請參閱相關的架構內容: