我正在研究基于 Docker、registrator、consul 和 HAProxy 的微服务架构。
我也在使用 Consul-template 来动态生成 HAProxy 配置文件。一切正常:当我添加同一个微服务的多个实例时,HAProxy 配置会立即更新,并使用循环策略正确分派请求。
当我删除一些实例(按比例缩小)时,会出现我的问题。如果在请求运行时关闭容器,则会出现错误。
我是 HAProxy 的新手,所以有没有办法配置 HAProxy 来告诉它在容器消失时重试对另一个端点的失败请求?
精度:我正在为我的前端和后端使用 layer7 路由模式(模式 http)。这是我的领事模板文件的一个小样本:
backend hello-backend
balance roundrobin
mode http
{{range service "HelloWorld" }}server {{.Node}} {{.Address}}:{{.Port}} check
{{end}}
# Path stripping
reqrep ^([^\ ]*)\ /hello/(.*) \1\ /\2
frontend http
bind *:8080
mode http
acl url_hello path_beg /hello
use_backend hello-backend if url_hello
谢谢您的帮助。