код состояния http, сигнализирующий о том, что экземпляр, являющийся частью ELB, является нездоровым - PullRequest
0 голосов
/ 06 ноября 2018

В соответствии с https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.healthstatus.html веб-служба должна ответить 200 OK кодом статуса HTTP, чтобы сигнализировать о работоспособном приложении, или любым другим для нездорового.

Мои вопросы, какой статус HTTP наиболее подходит для нездорового приложения?

Из всех классов статуса HTTP ниже

  • 1xx Informational response
  • 2xx Success
  • 3xx Redirection
  • 4xx Client errors
  • 5xx Server errors
Простая логика

предполагает, что это должна быть ошибка сервера, отличная от всего остального, и из всех 5xx Server errors кодов 503 Service Unavailable подходит наиболее естественно, однако я не смог найти никакой документации, подтверждающей это.

1 Ответ

0 голосов
/ 06 ноября 2018

Мои вопросы: какой статус HTTP наиболее подходит для нездорового приложения?

503 Услуга недоступна или более низкий уровень TCP RST - это совершенно удовлетворительные способы объявления службы о том, что она в данный момент недоступна. Вы можете использовать Retry-After , если хотите указать время ожидания. Я не видел документации, подтверждающей, что клиент ELB будет уважать этот заголовок.

GCP и Azure похожи; 200 Здоров, ничего другого нет. В документе Azure предлагается 500 Внутренняя ошибка сервера в качестве одного из возможных кандидатов, что, конечно, хорошо (Y00 - это грубое приближение всех кодов Yxx).

Протокол для Консул проверяет аналогично - 2xx для исправного состояния, 429 Too Many Requests для предупреждения (что является действительно странным выбором) и все остальное для отказа.

Я не большой поклонник использования Client Error для описания проблемы с сервером; но я не знаю, что это действительно больно. Семантика Retry-After действительно четко определена только для 3xx и 429/503, поэтому, если вы надеетесь использовать это, вам следует ограничиться этими кодами.

В противном случае вы можете просмотреть реестр кодов , чтобы узнать, есть ли код, который вы считаете более подходящим.

...