2017-02-18 20 views
0

В стандарте указано:В каких обстоятельствах API REST должен возвращать HTTP-статус 503

10.5.4 503 Обслуживание Недоступно. В настоящее время сервер не может обработать запрос из-за временной перегрузки или обслуживания сервера. Подразумевается, что это временное условие, которое будет смягчено после некоторой задержки.

REF: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

Если сервер, имеющий блокировку contension на уровне доступа к базе данных, следует возврат 503 сервера в таких случаях. Или же 503 статуса предназначен для:

  • сети перегружать
  • DOS ситуации типа
  • увеличившейся балансировка нагрузка
  • Явного окно обслуживания.

Какие другие обстоятельства, имеет смысл состояния возврата HTTP 503.

Любое детальное разъяснение очень ценится.

ответ

0

Предположим, что у службы возникла разногласия по поводу базы данных. Нет правил относительно того, что сервер ДОЛЖЕН делать. Однако вы можете выбрать возврат 503, если вы считаете, что проблема является временной и будет решена через некоторое время. Вы можете указать заголовок Retry-After, чтобы сообщить вызывающему абоненту, когда он может повторить попытку. Это особенно полезно, чтобы позволить вызывающему абоненту автоматически оправиться от проблемы. Вы можете использовать его для некоторых из ваших других сценариев, а также, чтобы вызывающие пользователи могли автоматически повторять попытку через указанный период.

Коды состояния служат 2 целям

  1. Пусть абонент знает, что случилось
  2. Пусть абонент знает, что он мог бы сделать следующий

Отправка вызывающему 503 с Retry-After обеспечивает больше вариантов для вызывающего абонента, чем отправка 500. Конечно, вызывающий пользователь может полностью игнорировать Retry-After и рассматривать его как 500, но вы, как поставщик услуг, предоставляете больше информации и опций.

0

The updated spec, для справки.

Если сервер, имеющий блокировку contension на уровне доступа к базе данных, необходимо возвращение 503 сервера в таких случаях

Имейте в виде, в модели HTTP REST кода статуса не о описывающем проблема в вашем обслуживании; они вместо этого описывают аналогичное условие в хранилище документов.

503 способ, которым в хранилище документов говорится: «Я слишком занят, повторите попытку позже».

Какие другие обстоятельства, имеет смысл состояния возврата HTTP 503.

противодавления.От Martin Thompson

Применение обратного давления является одним эффективным методом для борьбы с устойчивой высокой нагрузкой, таким образом, что максимальная пропускная способность может быть доставлена ​​без ухудшения производительности системы для уже принятых запросов и транзакций.

Когда мы должны поддерживать синхронные протоколы, такие как REST затем использовать обратное давление, сигнализируется нашей полной входящей очереди на шлюзе, чтобы послать значащее «занят сервер» сообщение, такие как HTTP 503 код состояния