Как возможна 180K RPS и p99 latency <170ms?

Достижение 180K RPS (запросов в секунду) с p99 latency <170ms требует комплексного подхода:

Короткий ответ

Что ответить на собеседовании

Достижение 180K RPS (запросов в секунду) с p99 latency <170ms требует комплексного подхода:

Подробный разбор

Ответ с пояснениями

Достижение 180K RPS (запросов в секунду) с p99 latency <170ms требует комплексного подхода:

  • Оптимизация кода: Использование эффективных алгоритмов и структур данных, минимизация блокировок и затрат на синхронизацию.
  • Параллелизм и асинхронность: В Go это горутины и каналы, позволяющие обрабатывать множество запросов одновременно.
  • Балансировка нагрузки: Распределение запросов между несколькими инстансами сервиса.
  • Кэширование: Использование кэшей для снижения нагрузки на базу данных и ускорения ответов.
  • Профилирование и мониторинг: Постоянный анализ узких мест и оптимизация горячих путей.

Пример простого HTTP-сервера на Go, способного обрабатывать множество запросов:

package main

import (
    "fmt"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "OK")
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}

Для реальной нагрузки потребуется более сложная архитектура с балансировщиками, кэшами и оптимизациями.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее