@carroll

Грамотная реализация системы диалогов на сайте (Архитектура)?

Имеется веб-сайт с высокой посещаемостью (около 120к уников в день, до 10к в онлайне).
Необходимо реализовать на сайте систему диалогов (как ВКонтакте) под HighLoad.
Текущая архитектура: Apache PHP-FPM (ver. 7), статика на NGINX, БД MySQL 0.2ТБ.

Как грамотно реализовать прослойку с node.js, и где хранить лучше сами сообщения?
Стоит ли использовать Redis и как сделать сохранение сообщений даже после ребута?
Какие есть ещё актуальные варианты реализации?
  • Вопрос задан
  • 1152 просмотра
Пригласить эксперта
Ответы на вопрос 4
@FireGM
Хранить стандартно в бд, а доставлять к клиентам при помощи centrifugo
Ответ написан
Комментировать
@evikbook
DevOps
С Redis Вам будет сложно масштабироваться. Придется делать N серверов redis на бекенде. И придумать свою механику распределения нагрузок между ними. По типу "Вася и Дима" общаются на базе Redis1, а "Вася и Коля" на Redis2. И предусмотреть в случае нагрузок возможность подключать новые Redis3 в обойму на лету в случае переполнения серверов. Ну и конечно это для свежих чатов. Более старые нужно выгружать из Redis и класть в архив Postgres или Mysql.
Ответ написан
Комментировать
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Может взять готовый jabber-сервер? Например, ejabberd.
Ответ написан
@carroll Автор вопроса
А связка ноды с мускулом сильно сломает систему? Выделить отдельный сервер с нодой и бд, реализовать апи, взаимодействовать с этим сервером.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы