【问题标题】:Docker Swarm - load-balancing to closest node firstDocker Swarm - 首先负载平衡到最近的节点
【发布时间】:2017-09-17 04:47:13
【问题描述】:

我正在尝试优化 Docker-Swarm 负载平衡,使其首先按以下优先级将请求路由到服务

  1. 同一台机器
  2. 同一个直流
  3. 其他任何地方。

鉴于以下设置:

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

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

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

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

请指教, 谢谢!

【问题讨论】:

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


    【解决方案1】:

    根据我之前问过的question,docker swarm 目前只使用循环,还没有迹象表明可以插入。

    不过,Nginx Plus 支持 minimum_time 负载均衡的方式,我觉得会有类似的开源模块,而且和你需要的差不多,可能是最省力的。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-12
      • 2017-10-29
      • 1970-01-01
      • 1970-01-01
      • 2017-03-23
      • 1970-01-01
      • 2018-01-03
      • 2017-05-09
      相关资源
      最近更新 更多