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


Перспектива azure Well-Architected Framework на Центры событий Azure

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

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

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

Следующие разделы относятся к Центры событий Azure с точки зрения хорошо спроектированной платформы:

  • Рекомендации по проектированию
  • Контрольный список для настройки
  • Рекомендуемые параметры конфигурации
  • Артефакты источника

Рекомендации по проектированию

Центры событий Azure предоставляют соглашение об уровне обслуживания в отношении времени доступности. Подробнее см. в разделе Соглашение об уровне обслуживания для Центров событий.

Контрольный список

Вы настроили Центры событий Azure с учетом требований к обеспечению эффективности работы?

  • Создайте политики SendOnly и ListenOnly для издателя и потребителя событий соответственно.
  • При использовании пакета SDK для отправки событий в Центры событий убедитесь, что исключения, выдаваемые политикой повтора (EventHubsException или OperationCancelledException), перехватываются должным образом.
  • Используйте пакетные события в сценариях с высокой пропускной способностью.
  • Каждый потребитель может считывать события от одного до максимума секций, поддерживаемых номером SKU Центров событий
  • При разработке новых приложений используйте EventProcessorClient (.NET и Java) или EventHubConsumerClient (Python и JavaScript) в качестве клиентского пакета SDK.
  • В рамках стратегии обеспечения доступности и аварийного восстановления на уровне решения рекомендуется использовать геоизбыточное аварийное восстановление в Центрах событий.
  • Если решение содержит большое количество независимых издателей событий, рекомендуется использовать издатели событий для тщательного контроля доступа.
  • Не публикуйте события в определенной секции.
  • При частой публикации событий по возможности используйте протокол AMQP.
  • Количество секций отражает степень возможного параллелизма.
  • Убедитесь, что каждое приложение-потребитель использует отдельную группу потребителей, и в группе потребителей есть только один активный получатель.
  • При использовании функции “Сбор” тщательно продумайте настройку временного периода и размера файла, особенно при низких объемах событий.

Рекомендации по настройке

При настройке Центров событий Azure примите во внимание следующие рекомендации по оптимизации надежности.

Рекомендация Description
При использовании пакета SDK для отправки событий в Центры событий убедитесь, что исключения, выдаваемые политикой повтора (EventHubsException или OperationCancelledException), перехватываются должным образом. При использовании HTTPS убедитесь, что реализован правильный шаблон повторных попыток.
Используйте пакетные события в сценариях с высокой пропускной способностью. Служба будет доставлять подписчикам массив json с несколькими событиями вместо массива с одним событием. Приложение, принимающее данные, должно обрабатывать эти массивы.
Каждый потребитель может считывать события из одной до максимальной секции, поддерживаемые номером SKU Центров событий. Для достижения максимального масштаба на стороне приложения-потребителя каждый потребитель должен выполнять чтение из одного раздела.
При разработке новых приложений используйте EventProcessorClient (.NET и Java) или EventHubConsumerClient (Python и JavaScript) в качестве клиентского пакета SDK. EventProcessorHost больше не поддерживается.
В рамках стратегии обеспечения доступности и аварийного восстановления на уровне решения рекомендуется использовать геоизбыточное аварийное восстановление в Центрах событий. Этот параметр позволяет создать дополнительное пространство имен в другом регионе. Только активное пространство имен получает сообщения в любое время. Сообщения и события не реплицируются в дополнительный регион. Значение RTO для региона отработки отказа составляет до 30 минут. Убедитесь в том, что значение RTO соответствует требованиям клиента и более широкой стратегии доступности. Если требуется более высокое значение RTO, рассмотрите возможность реализации шаблона отработки отказа на стороне клиента.
Если решение содержит большое количество независимых издателей событий, рекомендуется использовать издатели событий для тщательного контроля доступа. Издатели событий автоматически устанавливают для ключа секции имя издателя, поэтому эту функцию следует использовать только в том случае, если события исходят от всех издателей равномерно.
Не публикуйте события в определенной секции. Если важен порядок событий, реализуйте упорядочение нисходящих событий или используйте другую службу сообщений.
При частой публикации событий по возможности используйте протокол AMQP. Использование AMQP связано с повышенными затратами на сеть при инициализации сеанса, а использование HTTPS — с накладными расходами TLS при каждом запросе. AMQP отличается более высокой производительностью при частых публикациях.
Количество секций отражает степень возможного параллелизма. Для максимальной пропускной способности при создании концентратора событий используйте максимальное количество секций, поддерживаемых номером SKU. Увеличение числа секций позволяет масштабировать параллельные сущности обработки для сопоставления секций, обеспечивая оптимальную отправку и получение доступности.
При использовании функции “Сбор” тщательно продумайте настройку временного периода и размера файла, особенно при низких объемах событий. Data Lake 2-го поколения взимается за минимальный размер транзакции. Если для временного периода установить такое низкое значение, что файл не достигнет минимального размера, это повлечет за собой дополнительные расходы.

Артефакты источника

Чтобы найти пространства имен Центров событий с номером SKU Базовый, используйте следующий запрос:

Resources 
| where type == 'microsoft.eventhub/namespaces'
| where sku.name == 'Basic'
| project resourceGroup, name, sku.name

Следующий шаг