Docker swarm负载平衡 - 如何为服务提供通用名称?

时间:2017-06-12 08:07:50

标签: docker docker-swarm docker-swarm-mode

我看了swarm routing mesh

我创建了一个使用tomcat服务器并在8080侦听的简单服务。

docker swarm init我在node1创建了一个节点管理器。

docker swarm join /tokens我使用节点2和节点3的经理提供的令牌来创建工作人员。

docker node ls显示我的服务的5个实例,3个在节点1运行,1个在节点2运行,另一个在节点3。

docker service create image我创建了这项服务。

docker service scale imageid=5缩放它。

我的应用程序使用在JVM级别维护的原子序数。

如果我点击http://node1:8080/service 25次,则所有请求都会转到node1。它如何平衡节点?

如果我点击http://node2:8080/service,它会进入节点2.

为什么不使用循环法?

疑惑:

  1. 上述步骤有什么问题吗?
  2. 我错过了什么吗?
  3. 我觉得我错过了什么。与常用服务名称http://domain:8080/service一样,然后swarm将以循环方式工作。
  4. 我只想了解群模式。到目前为止,我对外部负载均衡器不感兴趣。

    如何查看群体负载均衡?

1 个答案:

答案 0 :(得分:1)

Docker对端口的每个连接进行循环负载平衡。只要连接已启动,它就会继续转到同一个实例。

Http允许连接保持活动并重用。浏览器利用此行为通过保持连接打开来加速以后的请求。要测试循环负载平衡,您需要禁用保持活动设置或切换到curl或wget等命令行工具。