
Очередь сообщений (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!
Средняя оценка 3 / 5. Количество голосов: 4
Оценок пока нет! Будьте первым, кто оценит этот пост.



