Вступить в клуб →
сложнаявопросNginx и балансировка: прокси, TLS, таймауты

После правки proxy_next_upstream у клиентов начали появляться двойные заказы

Чтобы пользователи реже видели 504, инженер изменил конфигурацию:

proxy_read_timeout 3s;
proxy_next_upstream error timeout non_idempotent;

Ошибок стало меньше, но в базе появились дубли заказов с разницей в 3 секунды. В логах видно: POST /orders на первом бэкенде обрабатывался 4 секунды и успешно создал заказ.

Как правильно поступить?

  • Убрать non_idempotent и ввести ключ идемпотентности
  • Поднять proxy_read_timeout до 5 секунд
  • Оставить повторы только для timeout, без error
  • Сделать дедупликацию заказов ночным скриптом

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела