Я разрабатываю систему уведомлений в реальном времени и систему чата на основе Java Spring с использованием Redis и WebSockets (с sockJS и STOMP). Требуется, чтобы каждый пользователь подписался на уникальный канал (имя канала будет идентификатором пользователя). Это связано с тем, что уведомления могут быть нацелены на одного пользователя, а разговор в чате может вестись один на один. Сама причина, по которой я использую Redis, заключается в том, чтобы вызвать событие на соответствующем сервере приложений (их много), где пользователь подключен через WebSocket. Насколько я понимаю, когда публикация говорит «user1», и если я хочу, чтобы «обработчик onMessage» запускался только для этого целевого пользователя:
- Нужно ли мне поддерживать 1 соединение Redis для каждого пользователя?
- Можно ли одновременно открывать 15 тысяч подключений с 15 тысячами уникальных подписок для множества пользователей, подключенных к системе одновременно?