【问题标题】:Consul Watch triggered on each server, cause multiple HTTP callsConsul Watch 在每台服务器上触发,导致多次 HTTP 调用
【发布时间】:2020-02-03 02:30:57
【问题描述】:

我有一个由 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
            }
        }
    ]
}

【问题讨论】:

    标签: config alert watch consul


    【解决方案1】:

    我们想出的解决方案是拥有一个拥有手表的专用服务器。显然,这并不理想,因为如果该服务器出现故障,那么手表就会随之而来。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-28
      • 1970-01-01
      相关资源
      最近更新 更多