提问人:RayJ_inSJ 提问时间:10/5/2019 最后编辑:Trenton McKinneyRayJ_inSJ 更新时间:1/23/2020 访问量:252
在每台服务器上触发 Consul Watch,导致多个 HTTP 调用
Consul Watch triggered on each server, cause multiple HTTP calls
问:
我有一个包含 3 台服务器的 Consul 集群。我为 keyprefix 设置了一个监视配置文件(参考下面的)。我将监视部署到我的每个服务器文件中。
我将监视部署到每个服务器的配置文件夹中,这样,如果领导者出现故障,那么下一个领导者将拥有手表。
我面临的问题是,当密钥更改触发监视时,3 台服务器中的每一台服务器都会运行处理程序。因此,对处理程序服务进行 3 次 POST 调用。
我怎样才能使它只调用一个处理程序事件?
最好来自集群领导者。
或者有没有办法只在特定服务器实例上启用监视?
我想到的另一种方法是创建一个脚本处理程序,并在脚本中检查它是否在领导者上运行。如果是这样,请手动创建 HTTP 调用。
{
"watches": [{
"type": "keyprefix",
"prefix": "port-list/",
"handler_type": "http",
"http_handler_config": {
"path": "http://XX.XX.XX.XX:XXXX/alert",
"method": "POST",
"header": {
"x-foo": ["bar", "baz"]
},
"timeout": "10s",
"tls_skip_verify": false
}
}
]
}
答:
0赞
RayJ_inSJ
1/23/2020
#1
我们想出的解决方案是拥有一台包含手表的专用服务器。显然,这并不理想,因为如果该服务器出现故障,那么手表也会随之而来。
评论