Приложение для чата с высоким уровнем одновременности
В настоящее время у меня есть веб-приложение для частного чата, которое работает очень хорошо.
Теперь проблема в том, что я использую mysql для сохранения, а затем получения полученных сообщений, это очень неэффективно, и я подумал о переходе на node.js или socket.io для обработки отправленных личных сообщений. Поскольку трафик, который я получаю, растет с каждым днем, мне скоро придется обрабатывать десятки, а затем и сотни тысяч соединений.
как я могу этого достичь? мне нужно несколько серверов? или может ли один мощный сервер обрабатывать такое огромное количество соединений?
Заранее спасибо.
1 ответ
Вам нужна либо большая мощная машина с высокой вычислительной мощностью и огромной оперативной памятью, либо несколько машин.
Вам также необходимо программное обеспечение pub-sub, такое как Redis или ZeroMQ, для связи между машинами (например, пользователь отправляет сообщение на машину A, но сообщение должно быть передано на все машины, и после этого машины должны отправить сообщение для конечных пользователей).
Изменить: Также, возможно, было бы более эффективно заменить MySQL чем-то вроде MongoDB, что может работать намного лучше, учитывая вариант использования.