M365Con 2027 – безкоштовна онлайн-конференція · 11–22 Jan 2027 · 120 sessions→ m365con.net

Блог · Mirko Peters

Освоєння Azure Event Hubs: партиції, групи споживачів і масштабування

By ·

Ласкаво просимо назад до нашого подальшого розгляду хмарної архітектури та інженерії даних у реальному часі. У світі сучасних корпоративних застосунків обсяг даних, які генерують користувачі, пристрої IoT, мікросервіси та агрегатори журналів, вражає. Організаціям уже недостатньо зберігати дані для пакетної обробки вночі; їм потрібні практичні висновки прямо зараз. Щоб відповісти на цей попит, хмар

Automatically translated with AI from the original post. Read the English original

Cover: Azure Event Hubs - Simply Explained

Ласкаво просимо назад до нашого подальшого розгляду хмарної архітектури та інженерії даних у реальному часі. У світі сучасних корпоративних застосунків обсяг даних, які генерують користувачі, пристрої IoT, мікросервіси та агрегатори журналів, вражає. Організаціям уже недостатньо зберігати дані для пакетної обробки вночі; їм потрібні практичні висновки прямо зараз. Щоб відповісти на цей попит, хмарні архітектори звертаються до надійних платформ потокової обробки подій. Якщо ви створюєте рішення в екосистемі Microsoft Azure, Azure Event Hubs є провідним повністю керованим сервісом для приймання даних у великих обсягах.

У цьому докладному посібнику ми детально розглянемо основні архітектурні компоненти, завдяки яким Azure Event Hubs працює. Ми розберемо, як партиції забезпечують масивну паралельну обробку, дослідимо, як групи споживачів дозволяють кільком застосункам читати один і той самий потік без взаємних конфліктів, і розглянемо стратегії масштабування, зокрема одиниці пропускної здатності та автоматичне збільшення. Чи проєктуєте ви систему виявлення фінансового шахрайства, чи глобальний конвеєр телеметрії, розуміння цих базових концепцій критично важливе для успіху.

Якщо ви вважаєте за краще аудіоформат, обов’язково ознайомтеся з відповідним епізодом подкасту Azure Event Hubs - Simply Explained, де ми простою та практичною мовою розбираємо ці архітектурні патерни.

Вступ до архітектури Azure Event Hubs

По суті, Azure Event Hubs задумано як надзvичайно масштабований рушій приймання подій. Він здатен отримувати й обробляти мільйони подій за секунду з наднизькою затримкою та слугує вхідними воротами для конвеєрів великих даних у хмарі. Уявіть його як величезний, добре організований паркінг для пакетів даних. Продюсери, наприклад мобільні застосунки, серверні журнали чи датчики на заводі, передають свої корисні дані до хабу, а споживачі, як-от Azure Stream Analytics, Azure Functions або власні робочі сервіси, забирають їх для обробки.

На відміну від традиційних черг повідомлень, які зберігають повідомлення доти, доки окремий споживач не підтвердить їх отримання (після чого повідомлення видаляється), Azure Event Hubs працює за потоковою моделлю. Дані додаються до незмінного журналу. Це означає, що кілька наступних систем можуть незалежно читати один і той самий потік даних у власному темпі, не знищуючи дані для інших читачів. Щоб упоратися зі швидкістю сучасних навантажень, Event Hubs використовує розподілену архітектуру, побудовану на двох фундаментальних концепціях: партиціях і групах споживачів.

Розуміння партицій для паралельної обробки

Якщо ви хочете досягти високої пропускної здатності, не можна пропускати всі вхідні дані через одне вузьке місце обробки. Саме тут на сцену виходять партиції. Партиція є, по суті, окремою послідовністю подій, що зберігається в межах хабу подій. Під час створення хабу подій потрібно вказати кількість партицій, яка зазвичай становить від 2 до 32 для стандартних рівнів, хоча для виділених середовищ доступні значно більші ліміти.

Коли продюсери надсилають події, вони можуть додавати ключ партиції, наприклад ідентифікатор пристрою, ідентифікатор користувача або регіон транзакції. Event Hubs обчислює хеш цього ключа й спрямовує подію до конкретної партиції. Це гарантує, що всі події з одним і тим самим ключем завжди потрапляють в одну й ту саму партицію, зберігаючи суворий порядок для пов’язаних даних.

Справжня магія партицій полягає в паралельній обробці. Розділяючи загальний потік даних на кілька незалежних фрагментів, кілька екземплярів споживачів можуть читати з різних партицій одночасно. Наприклад, якщо у вашому хабі подій 16 партицій, ви можете розгорнути застосунок-споживач із 16 окремими екземплярами читання, кожен з яких працює з однією партицією. Така модель горизонтального масштабування гарантує, що потужність обробки даних зростає лінійно зі зростанням навантаження.

Використання груп споживачів для незалежного споживання даних

У складному корпоративному середовищі один потік даних рідко використовує лише одна команда. Центр операцій безпеки може захотіти сканувати журнали на предмет аномалій, команда дата-сайентистів — передавати телеметрію в модель машинного навчання, а бухгалтерія — відстежувати метрики використання, і все це з одного й того самого вхідного потоку подій.

Azure Event Hubs вирішує це завдання за допомогою груп споживачів. Група споживачів являє собою повний огляд усього хабу подій. Вона працює як курсор або збирач закладок. Створюючи кілька груп споживачів, кілька застосунків-споживачів можуть одночасно й незалежно одне від одного читати потік подій від початку до кінця.

Оскільки кожна група споживачів веде власне окреме зміщення (offset), або покажчик, що позначає, які події вже прочитано, застосунок-споживач A може обробляти події в реальному часі, тоді як застосунок-споживач B може відставати або відтворювати історичні дані з початку дня, і жодний з них не заважатиме іншому. Саме це роз'єднання виробників і споживачів робить Event Hubs такою універсальною інтеграційною платформою для сучасних корпоративних архітектур.

Стратегії масштабування: одиниці пропускної здатності, процесорні одиниці та автоматичне збільшення

Ефективне управління ємністю — одна з найважливіших обов'язків хмарного архітектора. Azure Event Hubs пропонує гнучкі цінові рівні та механізми масштабування, щоб ваша архітектура залишалася продуктивною та економічно ефективною за різного навантаження.

Для рівня Standard ємність вимірюється в одиницях пропускної здатності (Throughput Units, TU). Одна одиниця пропускної здатності забезпечує 1 МБ/с вхідного трафіку та 2 МБ/с вихідного, а також до 1 000 вхідних подій на секунду на кожну TU. Якщо трафік раптово зростає, ручне масштабування може бути виснажливим і схильним до людських помилок. На щастя, Event Hubs має вбудовану функцію автоматичного масштабування, відому як Auto-Inflate.

Коли Auto-Inflate увімкнено, Azure автоматично збільшує кількість одиниць пропускної здатності залежно від навантаження, запобігаючи обмеженню швидкості та гарантуючи, що ваш конвеєр прийому ніколи не втрачатиме пакети під час несподіваних сплесків. Для організацій, яким потрібні виділені ізольовані обчислювальні ресурси з передбачуваною продуктивністю, рівні Premium і Dedicated вводять процесорні одиниці (Processing Units, PU), які пропонують вищі ліміти, відсутність впливу сусідніх «шумних» навантажень і корпоративний рівень ізоляції.

Надійність даних, збереження та аварійне відновлення

Коли йдеться про телеметрію з високою швидкістю надходження та критично важливі бізнес-журнали, втрата даних просто неприпустима. Azure Event Hubs містить надійні механізми, що гарантують довговічність даних і високу доступність.

Дані, записані в Event Hubs, за замовчуванням реплікуються між кількома доменами відмов в межах регіону Azure. Крім того, рівень Standard зберігає дані до 7 днів, тоді як рівні Premium і Dedicated подовжують строк зберігання до 90 днів. Це вікно зберігання дозволяє застосункам відновлюватися після тривалих збоїв шляхом повторного відтворення даних з певного моменту часу.

Для критично важливих застосунків, яким потрібен захист від регіональних збоїв, Azure пропонує функції Geo-Disaster Recovery та геореплікації. Поєднуючи основний простір імен із вторинним простором імен у парному регіоні Azure, організації можуть швидко перемикати свої конвеєри даних на резервний ресурс у разі катастрофи, дотримуючись жорстких вимог до цільового часу відновлення (RTO) та цільової точки відновлення (RPO).

Порівняння Azure Event Hubs, Service Bus та Apache Kafka

Архітектори часто мають труднощі з вибором правильної служби обміну повідомленнями в Azure, оскільки портфель містить кілька потужних варіантів. Щоб зробити правильний вибір, корисно розуміти, як Event Hubs порівнюється з Azure Service Bus і Apache Kafka.

Azure Service Bus розроблено для корпоративних шаблонів обміну повідомленнями з акцентом на надійні гарантії, такі як транзакції, відкладені повідомлення (dead-lettering), сесії та складна маршрутизація за моделлю pub/sub для відносно помірних обсягів даних. Натомість Azure Event Hubs створено спеціально для масового прийому телеметрії та потокової обробки з високою пропускною здатністю. Якщо вам потрібно обробляти мільйони легковагових подій за секунду, Event Hubs є значно економічнішим і продуктивнішим, ніж Service Bus.

Порівняно з відкритим Apache Kafka, Azure Event Hubs має суттєву операційну перевагу: це повністю керована послуга. Вам не потрібно керувати кластерами, налаштовувати Zookeeper чи займатися оновленням ОС. Event Hubs навіть надає endpoint, сумісний із Kafka, тож наявні застосунки Kafka можна підключити до Azure Event Hubs з мінімальними змінами в коді. Так ви отримуєте найкраще з обох світів.

Найкращі практики проєктування надійних потокових конвеєрів

Проєктування потокового конвеєра корпоративного рівня потребує ретельного планування та дотримання усталених найкращих практик. Щоб завершити наш архітектурний огляд, майте на увазі такі ключові рекомендації:

  • Ретельно плануйте кількість партицій: Пам’ятайте, що хоча одиниці пропускної здатності можна масштабувати динамічно, кількість партицій фіксується під час створення event hub. Обирайте таку кількість партицій, яка враховуватиме майбутнє зростання, але не створюватиме зайвих витрат на координацію.
  • Обирайте правильні ключі партицій: Використовуйте змістовні ключі партицій, щоб рівномірно розподіляти дані між партиціями та уникати «гарячих партицій», коли один ключ монopolізує ресурси.
  • Реалізуйте надійну обробку помилок: Вбудовуйте політики повторних спроб і механізми відкладених повідомлень (dead-lettering) у свої споживчі застосунки, щоб коректно обробляти «отруйні» повідомлення та тимчасові збої мережі.
  • Стежте за обмеженням швидкості (throttling): Використовуйте Azure Monitor для відстеження метрик, таких як вхідні запити, запити з обмеженням швидкості та стан партицій, щоб ваш застосунок залишався в межах виділених лімітів.

Опанувавши партиції, групи споживачів і стратегії масштабування, ви зможете створювати потокові конвеєри, які не лише працюють блискавично, а й є стійкими, масштабованими та готовими обробляти будь-який обсяг даних, з яким зіткнеться ваша організація.


У цьому блозі ми розглянули базову архітектуру Azure Event Hubs: як партиції забезпечують паралельне виконання, як групи споживачів розділяють незалежні навантаження та як механізми автоматичного масштабування допомагають вашим застосункам стабільно працювати під навантаженням. Щоб почати, створіть простір імен Event Hubs на порталі Azure, налаштуйте першу групу споживачів і підключіть обробник потоку.

Щоб поглибити знання та послухати реальні обговорення цієї теми, обов’язково прослухайте наш окремий епізод подкасту: Azure Event Hubs - Simply Explained. Скористайтеся потужністю потокової передачі даних у реальному часі та вже сьогодні змініть робочі процеси інженерії даних у своїй організації! 🚀

Поширені запитання

Що таке Azure Event Hubs?

Azure Event Hubs — це повністю керована платформа потокової передачі подій з високою пропускною здатністю, здатна приймати й обробляти мільйони подій за секунду з низькою затримкою, що робить її ідеальним вибором для сучасних конвеєрів даних у реальному часі.

Як працюють партиції в Azure Event Hubs?

Партиції розділяють загальний потік даних на незалежні послідовності. Продюсери спрямовують події до партицій за допомогою ключа партиції, що дозволяє кільком екземплярам споживачів читати дані паралельно та максимізувати пропускну здатність обробки.

Чим відрізняється Event Hub від групи споживачів?

Event hub — це центральне сховище журналу вхідних подій, а група споживачів являє собою окремий погляд на цей потік подій. Кілька груп споживачів дозволяють різним застосункам незалежно читати одні й ті самі дані, не заважаючи одне одному.

Чи можна масштабувати Azure Event Hubs автоматично?

Так. Увімкнувши функцію Auto-Inflate у просторах імен рівня Standard, Azure автоматично збільшує виділені одиниці пропускної здатності (Throughput Units) у міру зростання навантаження, запобігаючи обмеженню продуктивності.

Як довго зберігаються дані в Azure Event Hubs?

Термін зберігання даних залежить від цінового рівня. Рівень Standard зберігає дані до 7 днів, тоді як рівні Premium і Dedicated дозволяють зберігати дані до 90 днів.

Чи сумісний Azure Event Hubs з Apache Kafka?

Так. Azure Event Hubs надає endpoint, нативно сумісний з Kafka, що дозволяє наявним клієнтським застосункам і інструментам Apache Kafka взаємодіяти з Event Hubs без переписування кодової бази.


🎧 Слухайте цей епізод

Хочете практичне пояснення Azure Event Hubs у форматі розмови? Цей епізод доступно розбирає архітектуру та пояснює, чому вона важлива для сучасної хмарної розробки, корпоративної аналітики та масштабованих застосунків.

Слухайте цей епізод, якщо ви хочете:

  • Розберіться в основних механізмах розділів (partitions) і масштабування Azure Event Hubs
  • Дізнайтеся, як потокові архітектури вписуються в ширшу екосистему Microsoft Azure
  • З'ясуйте, де потокова обробка подій створює практичну бізнес-цінність для вашої організації

Вам також можуть сподобатися ці пов'язані епізоди M365 FM:

Знайдіть більше практичних розмов про хмару та Microsoft на M365 FM.

Останній перегляд: липень 2026 р.

Кому варто послухати

Цей епізод обов'язковий для адміністраторів Azure, архітекторів підприємств, розробників програмного забезпечення та технічних керівників, яким потрібна міцна практична основа перед проєктуванням, управлінням або експлуатацією архітектур потокової обробки даних у реальному часі.

🎧 Також варто послухати

  • Azure Event Grid — Практичний наступний крок для знайомства з реактивним обміном повідомленнями в хмарі.
  • Azure Service Bus — Дізнайтеся, коли використовувати черги повідомлень, а коли потоки подій.
  • Azure Functions — Дізнайтеся, як обробляти потоки подій у безсерверному стилі.

Entities in this article

Azure Event Hubs Apache Kafka Telemetry Microsoft Azure Azure Service Bus Microservices Throttling Azure Functions Azure Stream Analytics Dead-lettering

Related articles

RSS