Azure 事件中樞中的結構描述登錄
架構登錄在鬆散結合的事件串流工作流程中非常重要,可維護數據一致性、簡化架構演進、增強互操作性,以及減少開發工作。 它可確保高度可靠的數據處理和治理,在大型分散式組織中,具有架構集中式存放庫的作業額外負荷很少。
Azure 事件中樞 中的架構登錄在架構驅動事件串流案例中履行多個角色 -
- 提供可註冊、管理及演進多個架構的存放庫。
- 具有多個相容性規則的受控架構演進。
- 針對所有架構化數據執行數據驗證。
- 為生產者和取用者提供客戶端連結庫(串行化程式和還原串行化程式)。
- 傳遞架構標識碼而非每個承載的架構定義,以改善網路輸送量效率。
注意
標準、進階和專用層支援架構登錄。
結構描述登錄元件
架構登錄位於事件中樞命名空間的內容中,但它可以搭配所有 Azure 傳訊服務或其他訊息或事件代理程式使用。 它包含多個架構群組,可作為架構的邏輯群組,並可與其他架構群組分開管理。
結構描述
在任何鬆散結合的系統中,有多個應用程式彼此通訊,主要是透過數據。 架構可作為定義數據結構的宣告式方式,以便妥善定義這些產生者和取用者應用程式之間的合約,以確保大規模的可靠處理。
架構定義包括 -
- 欄位 - 個別資料元素的名稱(也就是名字/姓氏、書名、位址)。
- 數據類型 - 可以儲存在每個欄位中的數據種類(例如字串、日期時間、陣列)。
- 結構 - 不同欄位的組織(也就是巢狀結構或陣列)。
結構描述會定義生產者和消費者之間的合約。 在事件中樞結構描述登錄中定義的結構描述可協助管理事件資料以外的合約,因而移除承載額外負荷。
結構描述格式
結構描述格式可用來判斷結構描述的結構和定義方式,每個格式都會概述特定指導方針和語法,以定義將用於事件串流的事件結構。
Avro 結構描述
Avro 是常用的資料序列化系統,使用精簡的二進位格式並提供結構描述演進功能。
若要深入了解如何搭配事件中樞結構描述登錄使用 Avro 結構描述格式,請參閱:
JSON 結構描述
JSON 結構描述是定義事件結構和資料類型的標準化方式。 JSON 結構描述可讓您在事件串流中自信且可靠的使用 JSON 資料格式。
若要深入了解如何搭配事件中樞結構描述登錄使用 JSON 結構描述格式,請參閱:
Protobuf
通訊協議緩衝區 是一種語言中性、平臺中性、可延伸的機制,可用於串行化結構化數據。 它用來有效率地定義數據結構,並將其串行化為壓縮的二進位格式。
結構描述群組
架構群組是以您的商務準則為基礎的類似架構的邏輯群組。 架構群組保留
- 多個架構定義,
- 特定架構的多個版本,以及
- 有關群組中所有架構之架構類型和相容性的元數據。
架構群組可以視為架構登錄的子集,與特定應用程式或組織單位一致,且具有個別的授權模型。 此額外的安全性界限可確保共用服務模型中的元數據和商業秘密不會外洩。 其也可讓應用程式擁有者管理與其他共用相同命名空間的應用程式無關的結構描述。
結構描述演進
結構描述需要隨著生產者和消費者的商務需求而演進。 Azure 結構描述登錄藉由在結構描述群組層級引進相容性模式,來支援結構描述演進。 建立結構描述群組時,您可以指定結構描述的相容性模式,您會在結構描述群組中包含這些結構描述。 當您更新結構描述時,變更應該符合指派的相容性模式,然後只會建立新版結構描述。
注意
只有 Avro 結構描述格式才支援結構描述演進。
適用於事件中樞的 Azure 結構描述登錄支援下列相容性模式。
回溯相容性
回溯相容性模式可讓消費者程式碼使用新版結構描述,但其可以處理具有舊版結構描述的訊息。 當您在結構描述群組中使用回溯相容性模式時,其允許在結構描述上進行下列變更。
- 刪除欄位。
- 新增選擇性欄位。
往後相容性
往後相容性可讓消費者程式碼使用舊版結構描述,但其可以讀取具有新結構描述的訊息。 往後相容性模式允許在結構描述上進行下列變更。
- 新增欄位
- 刪除選擇性欄位
沒有相容性
使用 None
相容性模式時,若您更新結構描述時,結構描述登錄不會進行任何相容性檢查。
用戶端 SDK
您可以使用下列其中一個程式庫,包含 Avro 序列化程式,然後可以將此序列化程式用來序列化及還原序列化承載,其中包含結構描述登錄結構描述識別碼和 Avro 編碼資料。
- .NET - Microsoft.Azure.Data.SchemaRegistry.ApacheAvro
- Java - azure-data-schemaregistry-avro
- Python - azure-schemaregistry-avroserializer
- JavaScript - @azure/schema-registry-avro
- Apache Kafka - 執行 Kafka 整合式 Apache Avro 序列化程式,以及 Azure 結構描述登錄所支援的還原序列化程式。 JAVA 用戶端的 Apache Kafka 用戶端序列化程式適用於 Azure 結構描述登錄,可用於任何 Apache Kafka 案例,以及搭配任何以 Apache Kafka® 為基礎的部署或雲端服務。
- Azure CLI - 如需使用 CLI 將結構描述新增至結構描述群組的範例,請參閱使用 CLI 將結構描述新增至結構描述群組。
- PowerShell - 如需使用 PowerShell 將結構描述新增至結構描述群組的範例,請參閱使用 PowerShell 將結構描述新增至結構描述群組。
限制
如需事件中樞的限制 (例如:命名空間中的結構描述群組數目),請參閱事件中樞配額和限制。
Azure 角色型存取控制
若要以程式設計方式存取結構描述登錄,請遵循下列步驟:
- 在 Microsoft Entra ID 中註冊應用程式
- 將應用程式的安全性主體新增至命名空間層級的下列其中一個 Azure RBAC(角色型訪問控制)角色。
角色 | 描述 |
---|---|
負責人 | 讀取、寫入及刪除結構描述登錄群組和結構描述。 |
參與者 | 讀取、寫入及刪除結構描述登錄群組和結構描述。 |
結構描述登錄讀者 | 讀取並列出結構描述登錄群組和結構描述。 |
結構描述登錄參與者 | 讀取、寫入及刪除結構描述登錄群組和結構描述。 |
如需使用 Azure 入口網站來建立及註冊應用程式的指示,請參閱使用 Microsoft Entra ID 註冊應用程式。 記下用戶端識別碼 (應用程式識別碼)、租用戶識別碼,以及要在程式碼中使用的祕密。
下一步
- 若要了解如何使用 Azure 入口網站建立結構描述登錄,請參閱使用 Azure 入口網站建立事件中樞結構描述登錄。
- 請參閱下列結構描述登錄 Avro 用戶端程式庫範例。