【问题标题】:Docker reuse port in a consul TCP health check cycleDocker 在 consul TCP 健康检查周期中重用端口
【发布时间】:2017-03-21 08:52:24
【问题描述】:

例子:

时刻 1: Docker 运行容器 A 监听 32781(export port)->8000(service port) 通过 TCP 连接完成 Consul 健康检查(周期 10 秒)。

时刻 2: Docker 重启容器 A 并在关闭时间(小于 10 秒)运行容器 B。 现在 32781 端口是容器 B(复用端口),新的容器 A 得到了另一个端口。

但是下一轮consul健康检查,32781端口没问题,consul take对容器A也没问题。

如何解决这个问题?

【问题讨论】:

    标签: docker tcp microservices consul service-discovery


    【解决方案1】:

    在我看来,您必须取消注册服务,并在容器重启时进行健康检查。 Consul API 提供了这样一个机会,你只需要在你的微服务中使用它。如何准确地使其工作,取决于您的服务的构建方式。否则,Consul 将无法确定某些服务是用另一个端口重新启动的。

    【讨论】:

      猜你喜欢
      • 2019-09-24
      • 2016-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-27
      • 2021-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多