你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure 事件中心中的架构注册表
Azure 事件中心中的架构注册表提供了一个存储库,用于在架构驱动的事件流式处理方案中使用和管理架构。
架构注册表组件
事件中心命名空间可与事件中心(或 Kafka 主题)一起托管架构组。 它可托管架构注册表并可具有多个架构组。 尽管架构注册表是在 Azure 事件中心进行托管,但它仍可普遍用于所有 Azure 消息传送服务和任何其他消息或事件代理。 这些架构组每一个都是一个单独的安全存储库,适用于一组架构。 这些组可以与特定应用程序或组织单位保持一致。
架构组
架构组是基于业务条件的类似架构的逻辑组。 一个架构组可以保存架构的多个版本。 架构组上的兼容性强制设置有助于确保更新的架构版本后向兼容。
分组机制规定的安全边界有助于确保在多个合作伙伴之间共享命名空间的情况下,不会通过元数据无意中泄漏商业机密。 它还允许应用程序所有者管理独立于共享同一命名空间的其他应用程序的架构。
架构
架构定义了生成者与使用者之间的协定。 事件中心架构注册表中定义的架构可帮助管理事件数据之外的协定,从而消除有效负载开销。 架构具有名称、类型(例如记录、数组等)、兼容模式(无、前向兼容、后向兼容、完全兼容)和序列化类型(目前仅限 Avro)。 可以创建架构的多个版本,并检索和使用架构的特定版本。
架构格式
架构格式用于确定构造和定义架构的方式,都概述了用于定义将用于事件流的事件结构的特定准则和语法。
Avro 架构
Avro 是一种常用的数据序列化系统,它使用紧凑的二进制格式并提供架构演变功能。
要详细了解如何将 Avro 架构格式与事件中心架构注册表配合使用,请参阅:
JSON 架构(预览)
JSON 架构 是定义事件结构和数据类型的一种标准化方式。 JSON 架构支持在事件流式处理中自信可靠地使用 JSON 数据格式。
要详细了解如何将 JSON 架构格式与事件中心架构注册表配合使用,请参阅:
架构演变
架构需要根据生成者和使用者的业务要求而演变。 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 - 运行 Azure 架构注册表支持的与 Kafka 集成的 Apache Avro 序列化程序和反序列化程序。 可以在任何 Apache Kafka 场景中使用 Java 客户端的 Apache Kafka 客户端序列化程序,也可以在任何基于 Apache Kafka® 的部署或云服务中使用。
- Azure CLI - 有关使用 CLI 将架构添加到架构组的示例,请参阅使用 CLI 将架构添加到架构组。
- PowerShell - 有关使用 PowerShell 将架构添加到架构组的示例,请参阅使用 PowerShell 将架构添加到架构组。
限制
若要了解事件中心的限制(例如:命名空间中架构组的数量),请参阅事件中心的配额和限制。
Azure 基于角色的访问控制
若要以编程方式访问架构注册表,请执行以下步骤:
- 在 Microsoft Entra ID 中注册应用程序
- 在命名空间级别将应用程序安全性主体添加到下列 Azure 基于角色的访问控制 (Azure RBAC) 角色之一。
角色 | 描述 |
---|---|
所有者 | 读取、写入和删除架构注册表组和架构。 |
参与者 | 读取、写入和删除架构注册表组和架构。 |
架构注册表读取者 | 读取和列出架构注册表组和架构。 |
架构注册表参与者 | 读取、写入和删除架构注册表组和架构。 |
有关使用 Azure 门户注册应用程序的说明,请参阅将应用注册到 Microsoft Entra ID。 请记下要在代码中使用的客户端 ID(应用程序 ID)、租户 ID 和机密。
后续步骤
- 若要了解如何使用 Azure 门户创建架构注册表,请参阅使用 Azure 门户创建事件中心架构注册表。
- 请参阅下面的架构注册表 Avro 客户端库示例。