Хороший способ использовать socket.io с кластером на многоядерном сервере -?

Я создал приложение nodejs, которое отлично работает на одном ядре. Это приложение использует socket.io для легкой и быстрой связи.

Теперь я хотел масштабировать свое приложение по вертикали, позволив ему работать на многоядерной системе -с помощью модуля clusterв nodejs.

Все в моем приложении хранит данные в Redis, поэтому нет проблем с некоторыми базовыми данными и сеансами.

Однако, когда я создаю несколько рабочих процессов с помощью кластера, кажется, что каждый рабочий процесс имеет свою собственную обработку сокетов.

Например, предположим, что есть чат, который называется «гостевой».

Пользователь A и пользователь B подключаются к комнате и распределяются между разными рабочими процессами.

Поскольку они находятся в разных процессах, и эти процессы не используют общий прослушиватель сокетов,пользователь A и пользователь B не могут общаться друг с другом.

Каков хороший подход к решению этой проблемы? Поддерживает ли socket.io многоядерную систему -?

Является ли socket.io только для одноядерного использования?

7
задан user482594 1 July 2012 в 16:06
поделиться