Поделиться через


Реестр схем в Центры событий Azure

Реестр схем в Центры событий Azure имеет множество преимуществ. Реестр схем помогает поддерживать согласованность данных, упрощать эволюцию схемы, улучшать взаимодействие и сокращать усилия разработки в слабо связанных и потоковых рабочих процессах потоковой передачи событий. Крупные распределенные организации, использующие централизованный репозиторий для схем, могут использовать реестр схем для достижения высоконадежной обработки и управления данными с небольшими эксплуатационными затратами.

Реестры схем в Центры событий Azure выполняют множество ролей в сценариях потоковой передачи событий на основе схемы:

  • Предоставление репозитория, в котором можно зарегистрировать, управлять и развиваться несколькими схемами.
  • Управление эволюцией схемы с помощью нескольких правил совместимости
  • Выполнение проверки данных для всех схемизованных данных
  • Предоставление клиентских библиотек (сериализаторов и десериализаторов) для производителей и потребителей
  • Повышение эффективности пропускной способности сети путем передачи идентификатора схемы вместо определения схемы для каждой полезных данных

Реестры схем в Центры событий Azure поддерживаются на уровнях "Стандартный", "Премиум" и "Выделенный".

Компоненты реестра схем

Реестр схем является частью пространства имен Центров событий, но также может использоваться с другими брокерами сообщений или событий, включая службы обмена сообщениями Azure. Она состоит из нескольких групп схем, которые выполняют роль логической группировки схем и могут управляться независимо от других групп схем.

Схема с компонентами реестра схем в Центры событий Azure.

Схемы

В любой слабо связанной системе несколько приложений взаимодействуют в основном с помощью данных. Схемы определяют структуру данных декларативным образом. В результате контракт между производителями и потребительскими приложениями четко определен, обеспечивая надежную обработку в масштабе.

Определение схемы включает:

  • Поля: отдельные элементы данных, такие как имя, название книги или адрес.
  • Типы данных: тип данных, которые могут храниться, например строки, даты и времени или массива.
  • Структура: как упорядочены поля, такие как вложенные структуры или массивы.

Схемы определяют контракт между производителями и потребителями. Схема, определенная в реестре схем Центров событий, помогает управлять контрактом за пределами данных событий, что позволяет удалить полезные нагрузки.

Форматы схемы

Форматы схем используются для определения способа структурирования и определения схемы. Каждый формат содержит конкретные рекомендации и синтаксис для определения структуры событий, используемых для потоковой передачи событий.

Схема Avro

Apache Avro — это популярная система сериализации данных, которая использует компактный двоичный формат и предоставляет возможности эволюции схемы.

Дополнительные сведения об использовании формата схемы Avro с реестром схем Центров событий см. в следующей статье:

Схема JSON

Схема JSON (нотация объектов JavaScript) — это стандартизированный способ определения структуры и типов данных событий. Схема JSON обеспечивает уверенное и надежное использование формата данных JSON в потоковой передаче событий.

Дополнительные сведения об использовании формата схемы JSON с реестром схем Центров событий см. в статье "Использование реестра схем с схемой Kafka и JSON".

Protocol Buffers

Буферы протокола (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

Кроме того, приведенные ниже библиотеки также доступны на основе рабочих нагрузок.

Ограничения

Ограничения (например, количество схем, которые можно использовать в пространстве имен) центров событий, см. в разделе "Квоты центров событий" и ограничения.

Управление доступом на основе ролей Azure

Чтобы получить доступ к реестру схем программным способом, выполните следующие действия.

  1. Зарегистрируйте приложение в идентификаторе Microsoft Entra.
  2. Добавьте субъект безопасности приложения в одну из следующих ролей управления доступом на основе ролей Azure (RBAC) на уровне пространства имен.
Роль Описание
Ответственный Чтение, запись и удаление групп реестра схем и схем
Участник Чтение, запись и удаление групп реестра схем и схем
Читатель реестра схем Чтение и перечисление групп реестра схем и схем
Участник реестра схем Чтение, запись и удаление групп реестра схем и схем

Сведения о создании и регистрации приложения с помощью портал Azure см. в статье "Регистрация приложения с помощью идентификатора Microsoft Entra". Вам нужен идентификатор клиента (идентификатор приложения), идентификатор клиента и секрет для использования в коде.