В каждой системе есть наиболее нагруженный участок. Это первое, что нужно понять перед масштабированием. Масштабируется то, что нагружено, а не вся система целиком. Рекомендации:
1. Начните с паттерна доступа. Если операций чтения значительно больше, чем операций записи, не масштабируйте их вместе.
Пример: приложение электронной коммерции
* 99% трафика — поиск и просмотр товаров
* 1% трафика — обновление информации о товарах
Разделите их. Позвольте сервисам с высокой нагрузкой на чтение масштабироваться независимо. Оставьте потоки записи лаконичными и безопасными
2. Оптимизируйте хранилище под реальное узкое место. Одна основная БД для записи, несколько реплик для чтения
* Записи остаются консистентными
* Чтение остаётся быстрым
* Пиковые нагрузки не затрагивают источник достоверных данных
3. Добавьте кэш, где это действительно нужно. Кэшируйте:
* страницы товаров
* результаты поиска
* списки "Топ N"
* всё, что запрашивается многократно
Память быстрее диска. Микросекунды быстрее миллисекунд.
Post #2796
1.94K

- 👍 10
- ✍ 4
- 💯 3
- ❤🔥 1
- ❤ 1
- 🔥 1