Docker Swarm - 首先对最近的节点进行负载均衡

时间:2017-09-16 17:09:38

标签: load-balancing message-queue docker-swarm

我尝试优化Docker-Swarm负载均衡,以便首先通过以下优先级将请求路由到服务

  1. 同一台机器
  2. 相同DC
  3. 其他地方。
  4. 给出以下设置:

    • 数据中心-I
      • 服务器-I
        • Nginx的:80
      • 服务器-II
        • Nginx的:80
        • 工人
    • 数据中心-II
      • 服务器-I
        • Nginx的:80
        • 工人

    如果DataCenter-I :: Server-II :: Worker将通过端口80发出API请求,则所需的行为是:

    • 检查是否有任何任务(容器)映射到端口:本地服务器上的80(DataCenter-I :: Server-II)
    • 回退并检查本地DataCenter(即DataCenter-I :: Server-I)
    • 后退并检入所有群集(即DataCenter-II :: Server-I)

    这种情况在使用工作人员时非常有用,而带宽的响应时间并不重要。

    请指教, 谢谢!

1 个答案:

答案 0 :(得分:0)

根据我之前提到过的这个question,docker swarm目前只使用循环法,但没有任何迹象可以插入。

然而,Nginx Plus支持最小时负载均衡方法,我认为会有类似的开源模块,它与你需要的类似,可能是最省力的。

ps:不要使用docker swarm运行Nginx。相反,在应用程序的同一个docker网络中使用常规docker或docker-compose运行Nginx。您不希望docker swarm负载平衡负载均衡器。