Сколько каналов может поддерживать Redis для PUB / SUB? - PullRequest
1 голос
/ 06 апреля 2020

Я только начал работать с Redis, и я пытаюсь понять, как это работает, поэтому я прошу прощения, если то, что я собираюсь сказать, не правильно.

Я хочу построить систему реального времени, где Приложение Python (которое мы будем называть Сборщик данных) извлекает сделки на фондовых рынках примерно с 600 рынков. Эти сделки должны быть отправлены в приложение Django и отображены на веб-интерфейсе в режиме реального времени, поэтому я бы Python получил сделки> Django получил их и отправил на страницу.

В основном я бы использовал Redis в качестве брокера сообщений, это была бы система PUB / SUB. Таким образом, сборщик данных всегда работает, он извлекает сделки и отправляет их на канал; для каждого рынка есть один канал (более 600). Со стороны Django, как только пользователь откроет страницу рынка XYZ, Django подключится к каналу Redis рынка XYZ и получит сделки для этого канала. Имейте в виду, что эти данные не нужно хранить, их просто нужно показывать на моем веб-интерфейсе.

Эта система должна работать на бумаге, единственное, что вызывает у меня сомнения, - это большое количество каналов, в этом случае. Будет ли Redis поддерживать действительно большое количество каналов? Или это не зависит от того, сколько каналов я создаю? Должен ли я просто искать другой способ сделать это?

Ответы [ 3 ]

2 голосов
/ 10 апреля 2020

Чтобы найти максимальное количество каналов для вашего требования в режиме реального времени , вам необходимо выполнить профилирование задержки и найти соглашение по [ количеству каналов относительно желаемой задержки ]. Было бы неразумно go с максимальным количеством каналов от интуиции, так как это может не дать плодотворного результата для вашего требования.

Здесь - небольшое обсуждение по каналам Redis / профилированию задержки.

Кроме того, помимо вышеизложенного, у вас есть два варианта для повышения производительности при необходимости:

  • Кластеры Redis
  • Применение логических баз данных Redis
1 голос
/ 09 апреля 2020

Как здесь ранее отвечали: Подписчики и издатели Redis pub sub max

В Redis нет жесткого ограничения на максимальное количество каналов; настраивается пользователем.

1 голос
/ 09 апреля 2020

Это полностью зависит от конфигурации вашего сервера.

В части от номера канала есть и другие факторы, такие как количество одновременных соединений через сокет через браузер клиента.

Вы можете обратиться к ниже ссылка, чтобы понять работу pub / sub подробно

здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...