Приложение для чата с высоким уровнем одновременности

В настоящее время у меня есть веб-приложение для частного чата, которое работает очень хорошо.

Теперь проблема в том, что я использую mysql для сохранения, а затем получения полученных сообщений, это очень неэффективно, и я подумал о переходе на node.js или socket.io для обработки отправленных личных сообщений. Поскольку трафик, который я получаю, растет с каждым днем, мне скоро придется обрабатывать десятки, а затем и сотни тысяч соединений.

как я могу этого достичь? мне нужно несколько серверов? или может ли один мощный сервер обрабатывать такое огромное количество соединений?

Заранее спасибо.

1 ответ

Решение

Вам нужна либо большая мощная машина с высокой вычислительной мощностью и огромной оперативной памятью, либо несколько машин.

Вам также необходимо программное обеспечение pub-sub, такое как Redis или ZeroMQ, для связи между машинами (например, пользователь отправляет сообщение на машину A, но сообщение должно быть передано на все машины, и после этого машины должны отправить сообщение для конечных пользователей).

Изменить: Также, возможно, было бы более эффективно заменить MySQL чем-то вроде MongoDB, что может работать намного лучше, учитывая вариант использования.

Другие вопросы по тегам