Масштабирование веб-сокетов для отправки тысяч уведомлений - PullRequest
0 голосов
/ 09 июля 2019

Я работаю в социальной сети. На этом сайте есть группы. Каждый раз, когда создается группа, необходимо отправить уведомление всем пользователям на платформе. Я использую толкатель с очередями Laravel для отправки уведомлений. Я переместил уведомления, отправляющие код на работу, чтобы уменьшить время отклика API. На данный момент у меня работает одна очередь. Проблема в том, что он забивается при создании большого количества сеансов.

Мне нужно отправить уведомление ВСЕМ пользователям как можно скорее. Я попытался уменьшить вызовы API для толкателя путем пакетирования событий. И он отправляет в 10 раз больше уведомлений уже за то же время.

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

...