【发布时间】:2017-09-09 08:48:51
【问题描述】:
我有一个基于 Java 的 Web 应用程序,它部署在 jboss-10.1.0(wildfly) 中。我正在使用 docker swarm 模式(docker version 1.12.1)来扩展我的应用程序,一切正常,但我面临的唯一问题是会话管理。
现在让我们来看看场景。
我有两个实例正在为我的应用程序运行(即 App1 和 App2)。我正在使用 docker swarm 模式提供的默认负载均衡器和 nginx 将我的应用程序从 chintan.test.com:9080 重定向到 chintan.test.com:80这样我就不需要用我的 url 写下端口,我可以直接使用这个 URL chintan.test.com 访问。
现在默认负载均衡器使用 RR(Round-Robin algorithm) 来服务我的 Web 请求。所以当我第一次访问 chintan.test.com 时,它会转到 App1 实例并显示登录页面,我使用凭据登录,一切正常几分钟后切换到App2,登录页面再次出现。
我可以通过什么方式或工具(应该是开源的)来处理会话?所以至少我登录App1并坚持App1直到我注销。
谢谢!
【问题讨论】:
-
我强烈建议您不要使用有状态的应用程序,如果您想像现在这样进行扩展。将会话存储在单独的组件中是一种更好的解决方案。
标签: docker wildfly load-balancing docker-swarm docker-swarm-mode