Stworzyłem aplikację nodejs, która działa dobrze w jednym rdzeniu. Ta aplikacja używa gniazda socket.io do szybkiej komunikacji w trybie &.Dobry sposób na użycie socket.io z klastrem na wielordzeniowym serwerze?
Teraz chciałem skalować aplikację w pionie, umożliwiając jej uruchamianie w systemie wielordzeniowym przy użyciu modułu cluster
w nodejs.
Wszystko w mojej aplikacji przechowuje dane w Redis, dlatego nie ma problemu z niektórymi podstawowymi danymi sesji &.
Jednak, gdy spawnuję wiele procesów roboczych przy użyciu klastra, wydaje się, że każdy pracownik ma własną obsługę gniazd.
Załóżmy na przykład, że istnieje pokój rozmów nazywany "pokojem gościnnym".
Użytkownik A i użytkownik B łączy się z pokojem i są przydzielani do różnych procesów roboczych.
Ponieważ są one w różnych procesach i te procesy nie współdzielą nasłuchiwania gniazd, nie ma sposobu, aby użytkownik A i użytkownik B rozmawiali ze sobą.
Jakie jest dobre podejście do rozwiązania tego problemu? Czy socket.io obsługuje system wielordzeniowy?
Czy socket.io jest przeznaczony tylko do użytku z jednym rdzeniem?
można uruchomić socket.io z 'RedisStore' do skalowania nad procesami/serwery. Zobacz [ta moja poprzednia odpowiedź] (http://stackoverflow.com/questions/9267292/examples-in-using-redisstore-in-socket-io/9275798#9275798) dla większej głębi. –