История изменений
Исправление
mashina,
(текущая версия)
:
У меня риал тайм мессенджер. Хотелось бы сделать все красиво и масштабируемо.
В таком случае нужно делать шарды инстансов сервера по хэшам от пользователя (см. например, что такое consistent hashing) и прибивать все запросы для конкретного пользоваться к определённому шарду где всё время в памяти поднято его состояние + нужно иметь очереди сообщений между шардами (если пользователь X отправляет сообщение пользователю Y, то сначала оно проходит через стейт пользователя X на инстансе U(i) где валидируется, далее по MQ пересылается на шард U(j) с состоянием пользователя Y где и ожидает получения). Это всё несколько геморно в реализации, потому без необходимости не стоит думать о масштабируемости.
Исходная версия
mashina,
:
У меня риал тайм мессенджер. Хотелось бы сделать все красиво и масштабируемо.
В таком случае нужно делать шарды инстансов сервера по хэшам от пользователя (см. например, что такое consistent hashing) и прибивать все запросы для конкретного пользоваться к определённому шарду где всё время в памяти поднято его состояние + нужно иметь очереди сообщений между шардами (если пользователь X отправляет сообщение пользователу Y, то сначала оно проходит через стейт пользователя X на инстансе U(i) где валидируется, далее по MQ пересылается на шард U(j) с состоянием пользователя Y где и ожидает получения). Это всё несколько геморно в реализации, потому без необходимости не стоит думать о масштабируемости.