У меня есть приложение iOS, написанное на Swift, которое использует node.js на сервере в серверной части. Частью приложения является функциональность чата, для которого я использую socket.io. Я сталкиваюсь с проблемой, что со временем моего одного node.js сервера будет недостаточно.
В настоящее время у меня есть один node.js сервер для всех logi c, другой экземпляр с базой данных MySQL и другой экземпляр с базой данных MongoDB для разговоров и сообщений в чате.
В будущем я хотел бы иметь несколько экземпляров, работающих с socket.io, что позволило бы мне иметь больше одновременных соединений. Теперь мне просто интересно, как бы я это настроил.
Redis кажется очевидным способом go, но я не знаю, где это будет соответствовать моему приложению. Могу ли я установить Redis на мой основной сервер node.js или лучше запустить другой экземпляр, посвященный Redis? И будет ли Redis подключаться к моим, например, двум экземплярам socket.io? Примерно так:
- node.js
-- Redis
--- socket.io A
--- socket.io B
Или вот так:
- node.js with Redis
-- socket.io A
-- socket.io B
И еще одна вещь; что если мне понадобится несколько node.js экземпляров. Можно ли все это достичь? Я стараюсь максимально масштабировать по горизонтали.