Ответ
Горизонтальное масштабирование (scaling out) — добавление серверов под нагрузкой. Вертикальное (scaling up) — увеличение ресурсов сервера.
Кеширование (Redis, Memcached):
data, err := cache.Get("key")
if err != nil {
data = fetchFromDB()
cache.Set("key", data, ttl)
}
Балансировка нагрузки (Nginx, HAProxy, Cloud LB).
Асинхронная обработка через очереди (RabbitMQ, Kafka):
msg, _ := json.Marshal(task)
channel.Publish("", queue.Name, false, false, amqp.Publishing{Body: msg})
Оптимизация БД: индексы, шардинг, репликация.
Graceful shutdown для обработки текущих запросов перед остановкой.
Rate limiting (например, через golang.org/x/time/rate).
CDN для статики.
Connection pooling (например, sql.DB в Go).
Микросервисы вместо монолита.
Профилирование (pprof) для поиска узких мест.