Я много думал о том, как реализовать масштабируемую архитектуру живого чата. и я пришел к выводу, что существует два основных способа реализации архитектуры живого чата: я называю их «управляемый прокси» и «управляемый брокером».
Управляемый прокси:
- прокси гарантирует, что все пользователи в чате получают сообщения, перенаправляя всех пользователей в чате на один и тот же сервер WebSocket (WS) в пуле масштабируемых серверов WS; один чат существует на сервере, выбранном балансировкой нагрузки
- плюсы: это система с минимальным количеством компонентов
- диаграмма: прокси-управляемый (на imgur, так как недостаточно представителей ????)
Управляемый брокером:
- брокер гарантирует, что все пользователи, которые могут быть перенаправлены на разные серверы WS, получают сообщения, загружая сообщение на все серверы WS, которые обрабатывают чат, в котором находится сообщение; один чат существует на всех серверах
- pro: нагрузка распределяется на основе алгоритма маршрутизации прокси
- диаграмма: управляемая брокером
Я создаю эту тему для обсуждения архитектур, а не для конкретного ответа. Я хотел бы увидеть больше аргументов за и против любой архитектуры.
Проводили ли вы какое-либо исследование существующих архитектур живого чата (шаблоны, эталонные архитектуры и т. д.)? Это не то, что я когда-либо изучал, но наверняка должно быть что-то.
Хорошая идея, я постараюсь найти реальные варианты использования каждого из них. Я уже видел схемы архитектуры, управляемой брокером, но еще не исследовал какие-либо варианты использования.