Docker群集负载平衡 – 如何给服务通用名称?
我读了群路由网格
我创build了一个使用tomcat服务器的简单服务,并在8080处侦听。
docker swarm init
我在node1创build了一个节点pipe理器。
docker swarm join /tokens
我使用了节点2和节点3的pipe理器提供的令牌来创build工作者。
docker node ls
显示了我的服务的5个实例,3个在节点1上运行,1个在节点2上运行,另一个在节点3上。
docker service create image
我创build的服务。
docker service scale imageid=5
缩放它。
我的应用程序使用在JVM级别维护的primefaces序号。
如果我点击http://node1:8080/service
25次,所有的请求都会到达node1。 如何平衡节点?
如果我点击http://node2:8080/service
,它会转到节点2。
为什么不使用循环法?
释疑:
- 上述步骤是否有问题?
- 我错过了什么?
- 我觉得我失去了一些东西。 像普通服务名称
http://domain:8080/service
,swarm将以循环方式工作。
我只想了解群集模式。 我目前对外部负载均衡器不感兴趣。
如何在行动中看到群体负载平衡?
Docker在每个连接端口上进行循环负载均衡。 只要连接完成,它就会继续到同一个实例。
Http允许连接保持活动并重用。 浏览器利用这种行为,通过打开连接来加速以后的请求。 要testing循环负载均衡,您需要禁用保持活动状态的设置,或切换到像curl或wget这样的命令行工具。