Обновить

Не Кафкой единым: как наладить асинхронный обмен сообщениями между микросервисами

Время на прочтение15 мин
Охват и читатели10K
Всего голосов 19: ↑18 и ↓1+29
Комментарии9

Комментарии 9

Чем не подошли river или airflow?

Не согласен со всеми минусами для DB в таблице. Я бы минус поставил в строку «произвольная точность» ибо она зависит от periodic, но это можно решить подпиской на изменения, в том же Postgres

Выполнилась один раз — и тут же поставила себя ещё на одно исполнение, потом ещё и ещё

Вы изобрели агенты Битрикса)

RabbitMQ так-же в точности поддерживает pull и можно легко брать ровно столько задач, сколько потребуется (basic.get, basic.consume), никуда не захлёбываясь совершенно, и легко можно организовать скважность по количеству задач из одной очереди в расчёте на одного консьюмера, чтобы делить их равными кусками, а не по принципу кто первый смог всё выгрести. Необработанные задачи остаются в очереди задач и никуда не исчезают. При необходимости легче лёгкого организовать dead letter exchange и обрабатывать такие случаи специальным образом и даже возвращать их обратно в основную очередь.

Я лет 10 назад делал что-то подобное на Кролике (систему рассылки СМС и почты на миллионы получателей с отложенной отправкой и т.п.) и столкнулся со всякими разными проблемами, в том числе с Dead Letter и прочим.

Подробностей не помню точно, но оно не было "легче лёгкого" точно.

Опять же очерёдность сообщений там явно мешала, как сказано в статье - в таких системах он не нужна.

В итоге оно, конечно, работало, но не идеально.

Очень забавно наблюдать, как 2 разные команды из Яндекса с разницей в 1 день расписывают 2 своих велосипеда на одну тему - причем, не очень согласующихся между собой в показаниях :)

Вот читаю эту статью, и буквально справа в ленте предложки вижу это: https://habr.com/ru/companies/yandex/articles/972164/

Если я правильно понял суть проблемы, была необходимость отсылки сообщений в определенную дату-время или с определенной периодичностью.

А рассматривали ли вы комбинацию использования Scheduler в связке с очередью?

Внутреннее устройство принципиально очень сильно напоминает то, как организованы таймеры в ОС

Подскажите это закрытый сервис или планируется его открывать?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Информация

Сайт
www.ya.ru
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия