Перспектива azure Well-Architected Framework на Центры событий Azure
Центры событий Azure — это масштабируемая служба обработки событий, которая принимает и обрабатывает большие объемы событий и данных с низкой задержкой и высокой надежностью. Она может получать и обрабатывать миллионы событий в секунду. Данные, отправляемые в концентратор событий, можно преобразовывать и сохранять с помощью любого поставщика аналитики в режиме реального времени, а также с помощью адаптеров пакетной обработки или хранения.
Подробнее об использовании Центров событий см. в документации по Центрам событий 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