GOOGLE ADS

вторник, 10 мая 2022 г.

Максимальное ограничение на количество ключей маршрутизации в очереди?

Я пытаюсь использовать rabbitmq как часть системы уведомлений. У меня есть обмен под названием «notification_events», и очереди в обмене основаны на типах событий, например, «send_account_notification_queue» или «send_tickets_notification_queue». Для отправки конкретным пользователям я планирую привязать userId к соответствующей очереди в качестве ключа маршрутизации. И я уверен, что количество ключей маршрутизации будет расти с увеличением числа пользователей...

Я читал, что иметь тысячи или миллионы очередей — это плохо, но как насчет маршрутизации ключей? Есть ли лучшие способы сделать это? Любая помощь приветствуется и заранее спасибо за ваше время:)


Решение проблемы

Вам действительно нужна очередь для каждого пользователя? Рассматривали ли вы создание одной очереди для каждого типа события и использование userIdдля уведомления соответствующего пользователя? Предполагается, что данное пользовательское уведомление выполняется быстро и не может дать сбой только для подмножества пользователей.

Если вам нужна более сложная логика для каждого пользователя (например, изменение порядка событий) или работа с конкретным пользователем, который не может получить событие, тогда система очередей не является правильной абстракцией. Ищите систему оркестровки, такую ​​​​какtemporal.io, которая поддерживает объект для каждого пользователя с настолько сложной логикой, насколько это необходимо.

См. этот ответ, который объясняет, как Temporal решает эту проблему для системы с аналогичными требованиями.

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...