[alibaba/tengine]健康检查能否主动摘除后端服务

2024-07-10 492 views
4

目前碰到的问题,线上有时需要立即更新服务,更新的时候由于健康检查间隔时间*失败次数=空白期有点长,导致更新后端服务的时候,经常出现502; 冗余配置:可以部署一套冗余的tengine服务,但是成本也过高,操作也有点多。需要先下掉线上的tengine,再更新后端服务,更新好了,再重新上线等,后端服务也要冗余的节点才可等; 主动上下线服务: 能否更新后端每一个节点的时候,主动发送给tengine,先下掉服务,同一个服务一般都有两个,再更新后端服务,更新好了,再启动上线;这样就不会出现502,实现优雅的更新部署,成本也低,这样能解决临时紧急更新部署的痛点。 有没有其他好的方式?

回答

2

check_http_send "HEAD /check.htm HTTP/1.0\r\n\r\n"; 我看这是你之前问的时候的配置. 你可以让 /check.htm 是一个静态文件, 在更新服务前, 你删掉这个文件, 然后服务就会下线, 下线之后你再更新服务, 服务启动正常之后, 你在生成这个静态文件, 让流量进来, 一个脚本就可以了.

4

比如:

rm /path/check.htm
sleep 10s (空白期时间)
restart app
check app
touch /path/check.htm
3

好的。谢谢