Как взаимодействовать между клиентами WebSocket в разных развернутых узлах на разных портах?

#javascript #node.js #kubernetes #websocket

#javascript #node.js #kubernetes #websocket

Вопрос:

У меня есть сервер и клиент WebSocket, реализованные в nodejs, я создам несколько экземпляров с сервера с помощью Kubernetes, если у вас есть 10 экземпляров с серверного узла, и клиенты будут подключаться к нему, и я буду использовать Nginx для распределения запросов клиентов по экземплярам сервера, скажем, яподключите 100 клиентов, если к каждому экземпляру сервера подключено 10 клиентов, и я хочу, чтобы клиент в первом экземпляре сервера отправил что-то клиенту во втором экземпляре сервера, как я могу это сделать?

Ответ №1:

вы можете использовать Redis cluster в качестве движка сервера WebSocket, тогда k8s будет следить за доступностью данных на любых узлах

Схема управления Redis

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

1. Или, в более общем смысле, «база данных». Redis прост и удобен для небольших настроек. Для чего-то большего, может быть, Kafka. И когда вы становитесь больше, чем даже это может справиться, такие инструменты, как многоадресная рассылка TCP и предоставление Cisco infinity долларов.

2. @coderanger Это небольшая настройка?

3. Да, потому что вы сможете получить аналогичную производительность при гораздо меньшем использовании ресурсов (и, следовательно, стоимости) с помощью других инструментов, таких как Kafka, но они были бы излишними для нового пользователя 🙂