Post #2571
1.63K
15 эвристик для успешного проектирования систем:
(продолжение предыдущего поста)
1. Задержка + Глобальный масштаб → CDN
↳ Доставляйте данные с пограничных серверов, чтобы сократить задержку
2. Чтение + Узкое место → Кэш
↳ Храните часто запрашиваемые данные в кэше, чтобы снизить нагрузку на базу данных
3. Запись + Резкий рост нагрузки → Очередь
↳ Ставьте операции записи в очередь для фоновой обработки в периоды высокой нагрузки
4. Распределённая система + Транзакции → Saga
↳ Используйте компенсирующие действия для обработки транзакций, затрагивающих несколько сервисов
5. ACID + Реляционные данные → SQL
↳ Используйте SQL‑базу данных для строгой согласованности и целостности транзакций
6. Гибкость + Масштабирование → NoSQL
↳ Используйте NoSQL для гибкости схемы и горизонтального масштабирования
7. SQL + Масштабирование → Шардинг БД
↳ Распределяйте и разбивайте данные по шардам для масштабирования
8. Нагрузка + Рост → Масштабирование наружу (Scale Out)
↳ Добавляйте серверы для обработки дополнительной нагрузки
9. Трафик + Надёжность → Балансировка нагрузки
↳ Равномерно распределяйте запросы для повышения производительности
10. Основное + Сбои → Резервирование
↳ Дублируйте ключевые сервисы, чтобы избежать единичных точек отказа
11. Надёжность + Сбои → Репликация
↳ Реплицируйте данные для обеспечения доступности и возможности восстановления
12. Запросы + Резкий рост → Ограничение частоты (Throttle)
↳ Избегайте перегрузки сервера, ограничивая количество запросов
13. Нагрузка + Резкий рост → Автомасштабирование
↳ Автоматически увеличивайте или уменьшайте мощность серверов для управления нагрузкой
14. Реальное время + Обновления → WebSockets
↳ Используйте WebSockets для двусторонней realtime-коммуникации
15. Повтор + Безопасность → Идемпотентность
↳ Используйте идемпотентность, чтобы повторять операции без побочных эффектов
(продолжение предыдущего поста)
1. Задержка + Глобальный масштаб → CDN
↳ Доставляйте данные с пограничных серверов, чтобы сократить задержку
2. Чтение + Узкое место → Кэш
↳ Храните часто запрашиваемые данные в кэше, чтобы снизить нагрузку на базу данных
3. Запись + Резкий рост нагрузки → Очередь
↳ Ставьте операции записи в очередь для фоновой обработки в периоды высокой нагрузки
4. Распределённая система + Транзакции → Saga
↳ Используйте компенсирующие действия для обработки транзакций, затрагивающих несколько сервисов
5. ACID + Реляционные данные → SQL
↳ Используйте SQL‑базу данных для строгой согласованности и целостности транзакций
6. Гибкость + Масштабирование → NoSQL
↳ Используйте NoSQL для гибкости схемы и горизонтального масштабирования
7. SQL + Масштабирование → Шардинг БД
↳ Распределяйте и разбивайте данные по шардам для масштабирования
8. Нагрузка + Рост → Масштабирование наружу (Scale Out)
↳ Добавляйте серверы для обработки дополнительной нагрузки
9. Трафик + Надёжность → Балансировка нагрузки
↳ Равномерно распределяйте запросы для повышения производительности
10. Основное + Сбои → Резервирование
↳ Дублируйте ключевые сервисы, чтобы избежать единичных точек отказа
11. Надёжность + Сбои → Репликация
↳ Реплицируйте данные для обеспечения доступности и возможности восстановления
12. Запросы + Резкий рост → Ограничение частоты (Throttle)
↳ Избегайте перегрузки сервера, ограничивая количество запросов
13. Нагрузка + Резкий рост → Автомасштабирование
↳ Автоматически увеличивайте или уменьшайте мощность серверов для управления нагрузкой
14. Реальное время + Обновления → WebSockets
↳ Используйте WebSockets для двусторонней realtime-коммуникации
15. Повтор + Безопасность → Идемпотентность
↳ Используйте идемпотентность, чтобы повторять операции без побочных эффектов
- ❤🔥 5
- 🔥 4
- 👏 3








