【发布时间】:2019-08-16 15:48:56
【问题描述】:
我们有一个使用 asio 构建的定制应用程序,它同时使用 TCP 和 UDP。我们已将应用程序部署到 AWS 并使用网络负载均衡器。网络 LB 正在使用 TCP 执行健康检查,但我们的健康检查失败。
我必须写什么代码来确保健康检查不会失败。我知道在 HTTP 的情况下我只会回复 200 但是我不确定在 TCP 的情况下该怎么做。
【问题讨论】:
标签: amazon-web-services tcp asio aws-elb
我们有一个使用 asio 构建的定制应用程序,它同时使用 TCP 和 UDP。我们已将应用程序部署到 AWS 并使用网络负载均衡器。网络 LB 正在使用 TCP 执行健康检查,但我们的健康检查失败。
我必须写什么代码来确保健康检查不会失败。我知道在 HTTP 的情况下我只会回复 200 但是我不确定在 TCP 的情况下该怎么做。
【问题讨论】:
标签: amazon-web-services tcp asio aws-elb
为了提高 UDP 服务健康检查的准确性,请配置服务监听健康检查端口以跟踪您的 UDP 服务的状态,并在服务不可用时关闭健康检查端口。
根据documentation,健康检查端口必须正在侦听才能认为目标是健康的。确保目标 SG 中的 NLB 运行状况检查端口已打开,并且这些端口处于 LISTENING 状态。可选,但建议关闭端口以防 UDP 服务失败。 Here's how you can open a port in linux Here's how you can configure a script to listen to a port.
最好有一个脚本来监听您的健康检查端口,它会检查 UDP 服务的状态并在服务不可用时关闭连接。
【讨论】: