
Черга повідомлень (Message Queue, MQ): що це таке і як впливає на рекрутинг
Зараз серед вимог багатьох бекенд-вакансій можна побачити терміни RabbitMQ, ActiveMQ, Kafka. Це назви черг повідомлень (Message Queue). Зазвичай така вимога до вакансії ускладнює пошук: потрібно звертати більше уваги на досвід кандидатів, фільтруючи їхнє резюме. Іноді і без того невеликий ринок фахівців стає ще менше, оскільки рекрутер повинен відкинути кандидатів за додатковою навичкою.
MQ — що це, навіщо потрібні черги повідомлень і чому рекрутерам потрібно звертати увагу на подібну вимогу — розповідаю далі у статті.
Що таке черга повідомлень та message broker простими словами
Черга повідомлень — це механізм асинхронного обміну повідомленнями між компонентами системи. Якщо спростити, це спосіб організації даних. Якщо у вас накопичується безліч різних даних та запитів, у них важко розібратися. Різні підходи до таких даних можна порівняти зі стосом паперу: ви можете скинути все у купу або скласти акуратно, щоб зручно розібрати в певному порядку. Останній варіант і є візуалізацією черги повідомлень.
Водночас у поняття MQ включають і кеш повідомлень. Через таку подвійність сенсів розробники використовують також NoSQL базу даних Redis (підходить для примітивних задач кешування). Саме тому рекрутери на запитання про досвід із Message Queue можуть отримати відповідь «використовував Redis». Однак це лише базовий рівень роботи з чергами, тож не поспішайте передавати кандидата менеджеру.
Для більш просунутої роботи використовують спеціальну програму — message broker. Вона допомагає розподіляти повідомлення за групами та різними одержувачами. Таким чином можна розділити роботу з читання повідомлень серед кількох виконавців. Найчастіше на вакансіях із вимогою у чергах повідомлень мають на увазі саме брокери.
Більшість черг мають назви із закінченням “MQ”, що означає, що перед вами розробник із досвідом у чергах повідомлень. Наприклад, ви могли зустріти RabbitMQ, ActiveMQ, MSMQ. Єдині винятки становлять Kafka та SQS.
MUST READ: Boolean search і технічні терміни: дуже практична стаття для рекрутерів в IT
Як працює черга повідомлень
Якщо ви знайшли розробника без досвіду з чергами повідомлень, то він, ймовірно, працював або лише над невеликими проєктами, або над доісторичними проєктами-монолітами (чимось середнім між пірамідою Хеопса та гігантським гуртожитком у світі програм). Таку архітектуру простіше використовувати, вона добре підходить для невеликих, особливо навчальних, pet-проєктів. Оптимальний для невеликих команд.
Але вона має і мінуси: вона не підходить для масштабування і великих навантажень. Для розв’язання цих проблем і вигадали черги повідомлень.
Ось як вони працюють на практиці. Уявіть класичний поштовий сервіс (наприклад, Нову пошту). Якщо ви кудись переїжджаєте, ви повинні повідомити своїх друзів про новий поштовий індекс. Це дозволить вам отримувати листи з різних локацій та відділень. Сама пошта при цьому обробляє мільйони листів та адрес. Вона точно знає, кому ці листи доставляти, попри те, що хтось отримує їх щодня, а хтось раз на місяць.
Так і працюють черги повідомлень. Це окремий сервіс, який «підписує» виконавців/отримувачів на окремий тип запитів. При цьому відправник може вказати одержувачем людину в будь-якій локації, не маючи прямого зв’язку з нею. Це дозволяє створити універсальну структуру, де достатньо доступу до черг та «адрес» для обміну даними.
Сама назва містить слово «черга» тому, що вона допомагає формувати послідовність до обробки запитів: не потрібно обробляти їх усі одночасно або чекати, коли ви закінчите читати один «лист», перш ніж почати інший — навіть при великому завантаженні нічого не загубиться і система працюватиме правильно.
Розподілена архітектура
Messagequeue часто вживаються з поняттям розподіленої архітектури. У такому рішенні компоненти програми знаходяться на різних платформах. Вони можуть взаємодіяти один з одним через мережу зв’язку для досягнення певної мети.
На практиці це допомагає IT-компаніям донаймати співробітників у розподілену команду з різних куточків світу або навіть аутстафити окремі фічі/підпроєкти для розробки одного продукту.
Мікросервісна архітектура
Окремий випадок описаної системи — це мікросервісна архітектура (microservices). Мікросервіси також часто йдуть пліч-о-пліч з чергами повідомлень.
Коли сервер складається не з однієї програми, а з десятка мініпрограм, які спілкуються один з одним та користувачами, це називають мікросервісною архітектурою (microservices). Кожен мікросервіс має бути максимально компактним та відповідати за вузький спектр завдань, об’єднаних однією тематикою. В ідеалі — один мікросервіс на одне завдання. Окремі мікросервіси можна відключати, замінювати та оновлювати на новіші — це не повинно заважати роботі програми в цілому. Однак такий підхід значно ускладнює архітектуру сервера і вимагає вищої кваліфікації розробників (а отже, і більших витрат на зарплатний фонд).
Якщо на прикладі, наш поштовий сервіс зможе передавати дані й на інші континенти, адже система поштових адрес універсальна. Так само і з програмами: різні частини продукту можуть з’єднуватися один з одним із різних куточків світу, а до їх розробки можна підключити великі команди без шкоди процесам.
MUST READ: Як найняти Senior-фахівця? Поради з досвіду Technical Recruiter
Черга повідомлень: переваги та недоліки системи
Ця універсальна система побудувала сучасний підхід до архітектури додатків: їх можна масштабувати, легко замінювати окремі частини без шкоди для роботи продукту. Якщо підсумувати, переваги використання черги повідомлень такі:
- автономність процесів та асинхронність,
- розподіленість,
- масштабованість,
- ефективне використання ресурсів,
- пристосованість до багатопотоковості,
- адаптивність до високого навантаження,
- гарантоване доставлення та порядок доставлення тощо.
Серед мінусів: здорожчання та ускладнення архітектури проєкту. Такий підхід потребує більше ресурсів на розробку та високих навичок команди, щоб реалізувати потрібні рішення.
Як Message Queue впливає на рекрутинг у IT
MQ — це гарантована ознака продукту, над яким працює безліч команд і який націлений на велику аудиторію. Що означає mq у резюме кандидатів? Зазвичай вони вказують на досвідченого програміста, який не з чуток знайомий із серйозною розробкою.
При цьому ніхто не забороняє юзати чергу повідомлень для солідності: іноді вона як п’яте колесо, зате круто виглядає в резюме. Тож будьте уважні та розглядайте CV комплексно.
З іншого боку, і hiring менеджери можуть завищувати вимоги, додаючи Message Queue в опис вакансії на всяк випадок, на перспективу. Звичайно, така вимога звужує ринок доступних кандидатів і розтягує time-to-hire. Тому усвідомлено вивчайте опис проєкту, зіставляйте його з вашою вакансією і перепитуйте менеджера/клієнта про те, які скіли — must-have, а які можна упустити.

Наскільки корисним був цей пост?
Click on a star to rate it!
Середній рейтинг 5 / 5. Кількість голосів: 4
Оцінок поки немає! Будьте першим, хто оцінить цю публікацію.



