Является ли хорошей практикой создание канала для каждого пользователя в шине redis message - PullRequest
0 голосов
/ 21 февраля 2019

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

  1. Создать канал для каждого экземпляра приложения
  2. Создать канал для каждого пользователя

Любые предложения будут высоко оценены

1 Ответ

0 голосов
/ 22 февраля 2019

Ограничивающим фактором здесь является количество подписчиков на один и тот же канал.Количество каналов может быть большим как таковым.Таким образом, вы можете выбрать гранулярность соответственно.Подробнее здесь:

https://groups.google.com/forum/#!topic/redis-db/R09u__3Jzfk

All the complexity on the end is on the PUBLISH command, that performs
an amount of work that is proportional to:

a) The number of clients receiving the message.
b) The number of clients subscribed to a pattern, even if they'll not
match the message.

This means that if you have N clients subscribed to 100000 different
channels, everything will be super fast.

If you have instead 10000 clients subscribed to the same channel,
PUBLISH commands against this channel will be slow, and take maybe a
few milliseconds (not sure about the actual time taken). Since we have
to send the same message to everybody.

Подобный вопрос задавался ранее: Как работает механизм подписки Redis PubSub?

...