Docker swarm 负载均衡 - 如何为服务指定通用名称?
Docker swarm load balancing - How to give common name to the service?
我创建了一个使用 tomcat 服务器并在 8080 监听的简单服务。
docker swarm init
我在 node1 创建了一个节点管理器。
docker swarm join /tokens
我在节点2和节点3使用了manager提供的token来创建worker
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。
为什么不使用循环法?
疑问:
- 以上步骤有什么问题吗?
- 我是不是漏掉了什么?
- 我觉得我错过了什么。与普通服务名称
http://domain:8080/service
一样,swarm 将以循环方式工作。
我只想了解集群模式。我现在对外部负载均衡器不感兴趣。
如何查看 swarm 负载平衡的运行情况?
Docker 对端口的每个连接执行循环负载平衡。只要有一个连接,它就会继续去同一个实例。
Http 允许保持连接并重复使用。浏览器利用此行为通过保持连接打开来加速以后的请求。要测试循环负载平衡,您需要禁用保持活动设置或切换到命令行工具,如 curl 或 wget。
我创建了一个使用 tomcat 服务器并在 8080 监听的简单服务。
docker swarm init
我在 node1 创建了一个节点管理器。
docker swarm join /tokens
我在节点2和节点3使用了manager提供的token来创建worker
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。
为什么不使用循环法?
疑问:
- 以上步骤有什么问题吗?
- 我是不是漏掉了什么?
- 我觉得我错过了什么。与普通服务名称
http://domain:8080/service
一样,swarm 将以循环方式工作。
我只想了解集群模式。我现在对外部负载均衡器不感兴趣。
如何查看 swarm 负载平衡的运行情况?
Docker 对端口的每个连接执行循环负载平衡。只要有一个连接,它就会继续去同一个实例。
Http 允许保持连接并重复使用。浏览器利用此行为通过保持连接打开来加速以后的请求。要测试循环负载平衡,您需要禁用保持活动设置或切换到命令行工具,如 curl 或 wget。