Недостатки использования очередей сообщений | OTUS

Недостатки использования очередей сообщений

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

  1. Message Queues, по сути, представляют собой еще одну систему, которую надо купить, инсталлировать, а также правильно сконфигурировать и на протяжении эксплуатации поддерживать. Соответственно, потребуются дополнительные мощности.
  2. Если брокер когда-нибудь выйдет из строя, может остановиться работа многих систем, с ним взаимодействующих. Следовательно, по меньшей мере надо будет выполнить резервное копирование данных.
  3. Кода растет количество очередей, усложняется и отладка. В случае синхронной обработки сразу понятно, какой именно запрос вызвал сбой. А вот в очередях сообщений потребуется наличие системы трассировки, которая позволит быстро связать несколько этапов обработки одного запроса -- так вы обнаружите причины ошибок.
  4. Во время применения очередей вы в любом случае столкнетесь с необходимостью выбора стратегии доставки сообщений. В идеальной ситуации сообщения должны обрабатываться каждым потребителем однократно. Однако в реальной жизни реализовать это сложно, т. к. сети и инфраструктура несовершенны. Вообще, большая часть брокеров поддерживает 2 стратегии: доставка хотя бы один раз (At-least-once) либо доставка максимум раз (At-most-once). Первая стратегия способна стать причиной появления дубликатов, вторая может привести к потере сообщений. Обе эти стратегии не идеальны и требуют тщательного мониторинга. Также некоторые брокеры гарантируют строго однократную доставку (Exactly-once) с применением порядковых номеров пакетов данных -- однако даже в этом случае понадобится дополнительная проверка на стороне получателя.

оÐ_Ñ_оÑ__1-1801-7baf95.jpg

В общем идеальных технологий, как известно не бывает. Правда, скрасить жизнь может услуга от современных облачных провайдеров, которые предлагают очереди как сервис (MQ as a Service). Это выход, если ресурсов для самостоятельной настройки и регулярной поддержки очередей сообщений вам не хватает. Можно найти оптимальное предложение, в которое будут включены и автоматизация настройки, и масштабирование, и диагностика ошибок, и техподдержка, и даже поддержка Exactly-once в очередях FIFO.

monitor_1307227_1920_1-1801-c44428.jpg

По материалам https://mcs.mail.ru/blog/.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто