表示属于 ELB 的实例不健康的 http 状态代码
http status code to signal an instance that is part of an ELB is unhealthy
根据 https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.healthstatus.html,Web 服务应响应 200 OK
HTTP 状态代码以指示应用程序健康,或 任何其他 响应不健康。
我的问题是哪种 HTTP 状态最适合不健康的应用程序?
在下面的所有 HTTP 状态 类 中
1xx Informational response
2xx Success
3xx Redirection
4xx Client errors
5xx Server errors
简单的逻辑表明它应该是一个服务器错误而不是其他任何东西,并且在所有 5xx Server errors
代码中 503 Service Unavailable
最自然地适合但是我找不到任何支持这个的文档。
My questions is which HTTP status is most appropriate for an unhealthy application?
503 Service Unavailable, or a lower level TCP RST, are perfectly satisfactory ways for a service to announce that it isn't currently available. You can use Retry-After 如果您想建议等待时间。我还没有看到任何文件表明 ELB 客户端会遵守 header.
GCP and Azure are similar; 200 Healthy, anything else is not. The Azure document suggests a 500 Internal Server Error 作为一个可能的候选者,这当然很好(Y00 是所有 Yxx 代码的粗粒度近似值)。
协议 Consul checks is similar -- 2xx for healthy, 429 Too Many Requests 警告(这是一个非常奇怪的选择),以及其他任何失败。
我不太喜欢使用 Client Error 来描述什么是服务器问题;但我不知道它真的会伤害任何东西。 Retry-After
的语义实际上只为 3xx 和 429/503 明确定义,因此如果您希望利用它,您应该限制自己使用这些代码。
否则,您可以翻阅status code registry,看看是否有您认为更合适的代码。
根据 https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.healthstatus.html,Web 服务应响应 200 OK
HTTP 状态代码以指示应用程序健康,或 任何其他 响应不健康。
我的问题是哪种 HTTP 状态最适合不健康的应用程序?
在下面的所有 HTTP 状态 类 中
1xx Informational response
2xx Success
3xx Redirection
4xx Client errors
5xx Server errors
简单的逻辑表明它应该是一个服务器错误而不是其他任何东西,并且在所有 5xx Server errors
代码中 503 Service Unavailable
最自然地适合但是我找不到任何支持这个的文档。
My questions is which HTTP status is most appropriate for an unhealthy application?
503 Service Unavailable, or a lower level TCP RST, are perfectly satisfactory ways for a service to announce that it isn't currently available. You can use Retry-After 如果您想建议等待时间。我还没有看到任何文件表明 ELB 客户端会遵守 header.
GCP and Azure are similar; 200 Healthy, anything else is not. The Azure document suggests a 500 Internal Server Error 作为一个可能的候选者,这当然很好(Y00 是所有 Yxx 代码的粗粒度近似值)。
协议 Consul checks is similar -- 2xx for healthy, 429 Too Many Requests 警告(这是一个非常奇怪的选择),以及其他任何失败。
我不太喜欢使用 Client Error 来描述什么是服务器问题;但我不知道它真的会伤害任何东西。 Retry-After
的语义实际上只为 3xx 和 429/503 明确定义,因此如果您希望利用它,您应该限制自己使用这些代码。
否则,您可以翻阅status code registry,看看是否有您认为更合适的代码。