Стоит ли беспокоиться о масштабировании на этапе разработки?

Частенько задумываясь о будущих нагрузках, меня посещает мысль о масштабировании моего проекта. Я использую WebSocket серверы на PHP как демоны (научил их общаться между собой через Memcache), Memcache и MySQL, а так же сессии на файлах.

Что из этого набора может вызвать в дальнейшем трудности при горизонтальном масштабировании и стоит ли мне что-то менять?
  • Вопрос задан
  • 444 просмотра
Пригласить эксперта
Ответы на вопрос 2
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
redis, у него есть pub/sub интерфейс так что можно заставить общаться демоны через него, можно хранить в нем сессии...

Частенько задумываясь о будущих нагрузках

Тогда вы должны писать нагрузочные тесты, а не филосовствовать о том что можно еще сделать просто-так. В целом если вы не занимались настройкой ядра у вас начнутся проблемы уже на 1000-е активных пользователей (по умолчанию PHP не умеет в stream_select обрабатывать более ~1024 файловых дескриптеров, а операционная система и вовсе по умолчанию ограничивает количество всех файловых дескрипторов на процесс.

Горизонтальное масштабирование web socket серверов нужно когда у нас количество активных пользователей которые одновременно пользуются системой доходит ближе к 10К а то и больше (нагрузочные тесты все покажут).

То чем вы занимаетесь называется преждевременной оптимизацией.
Ответ написан
Комментировать
nazarpc
@nazarpc
Open Source enthusiast
Как минимум сессии на файлах не очень мягко говоря масштабируются. Так же непонятно как WebSockets сервера общаются через Memcached, было бы логичнее тот же WebSockets использовать для их общения между собой.
Просто разделите всё на отдельные серверы и продублируйте. Всё ещё работает вместе как надо? Значит масштабируется.
Ответ написан
Ваш ответ на вопрос

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

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