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