0

我读了群路由网格

我创建了一个使用 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/service25 次,所有请求都会转到 node1。它如何平衡节点?

如果我点击http://node2:8080/service,它将转到节点 2。

为什么不使用循环?

疑点:

  1. 上述步骤有什么问题吗?
  2. 我错过了什么?
  3. 我觉得我错过了什么。与常见的服务名称一样http://domain:8080/service,swarm 将以循环方式工作。

我只想了解群模式。到目前为止,我对外部负载均衡器不感兴趣。

我如何看到集群负载平衡在起作用?

4

1 回答 1

2

Docker 对每个到端口的连接进行循环负载平衡。只要连接建立,它将继续转到同一个实例。

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

于 2017-06-12T08:23:02.700 回答