2012-08-20 2 views
4

После использования Node.js и socket.io какое-то время я понимаю, что если я хочу, чтобы мое приложение поддерживало до 1 миллиона одновременных пользователей, мне нужно масштабировать его, поэтому Я начал использовать Redis для сообщений PUB/SUB между сокетами и запускать множество экземпляров серверов socket.io на том же компьютере и на других компьютерах, но все мои серверы socket.io работают с тем же сервером Redis.Масштабирование Socket.IO с Redis, а затем масштабирование самого Redis

Так что это заставляет меня думать .. В чем смысл? так что мне понадобится еще несколько серверов redis и масштабирование между ними? Я хочу сказать, что они всегда будут узким местом на верхнем сервере.

Мой вопрос: возможно ли масштабировать Redis? и если да, то как все мои сокеты, подключенные к разным серверам socket.io, смогут PUB/SUB между серверами Redis?

Большое спасибо

+0

, пожалуйста, вы используете одно и то же соединение для паба/суб? спасибо –

+0

Нет, создав 2 клиента для каждого подключенного клиента – udidu

+0

ужасно извините, я бы сказал, что ** ** ** pub/sub. Так ? спасибо –

ответ

2

Я думаю, что вы ищете является Redis Cluster. На этой странице упоминается «работа над» и «надеюсь, на это лето».

Есть презентация here. Это в основном хэширование + одиночный мастер и подчиненные для избыточности. Но он еще не готов. Ваш лучший выбор для получения дополнительной информации - это поразить форумы и IRC для этих продуктов.

Если кто-то делает что-то подобное, они будут на этих каналах.

+0

Большое спасибо! отличный ресурс – udidu

+1

Или, если вы являетесь клиентом, единственным клиентом, запрашивающим Redis, сверните свой собственный, выполнив хеширование на стороне клиента. Быстрый поиск lib в Node.js, который поможет вам: https://github.com/bnoguchi/node-hash-ring. (прочитайте на упомянутом блоге, если вы не знакомы с термином «последовательное хеширование», которое в основном позволяет вам эластично масштабировать ваши серверы с минимальными накладными расходами и перестраиваться взамен, вместо того, чтобы априори определять nr серверов). Кстати: это только заботится о шрапании. Также следует позаботиться о репликации/HA. –

+2

Да, Redis Cluster - это путь к этому. Я использую его с апреля 2012 года для других вещей и pub/sub, и он отлично работает :) Я написал модуль nodejs, который поможет вам справиться с Redis Cluster и делает хэширование на стороне клиента для вас, все, что вам нужно do предоставляет адрес одному из узлов, и он обнаружит другие узлы для вас, если вы правильно настроили кластер: https://github.com/joaojeronimo/node_redis_cluster –

Смежные вопросы