【发布时间】:2014-03-10 18:52:23
【问题描述】:
所以我可能在脑海中知道这个问题的答案,但我似乎无法确定它,而且当我想到它时我会更加困惑。
我正在对 Web 应用程序架构进行一些研究,以实现高可扩展性/可维护性(以及所有其他很酷的功能)。我正在尝试研究一种架构,其中我们有一个具有 3 个节点的集群。
节点 1.[HIGH SECURITY , MEDIUM RAM, LOW DISK SPACE] 具有管理应用程序,例如 configurationService、authenticationService(我称之为 admin0)
节点 2。[中等安全性,低 RAM,高磁盘空间] 具有面向内容的应用程序,例如媒体服务(如文件托管)、Profiles 等。只是面向存储的节点,我称之为 misc0。
节点 3。[低安全性,高 RAM,中磁盘空间] 具有业务应用程序,即 Web 应用程序的核心应用程序。
所以这分离了关注点,如果我们想扩展,我们可以单独扩展每个节点。另外,我认为节点 3 将是负载最大的节点。
现在,问题是,如果用户在 node1(admin0)/authenticationService 上获得身份验证,我希望为集群中的所有应用程序激活他的会话,这样他们就不必再查询 authenticationService,他们应该看看启动他们的本地 HttpSession。
现在,带有 Delta(或备份)管理器的 Tomcat 集群提供了此功能,但它们仅与安装此应用程序的节点共享会话。尽管即使对等设备上未安装应用程序,增量管理器也会共享会话,但我不知道如何使用该会话?我知道您可以将 cookie 的路径设置为“/”,这是我的解决方案吗?
我是否在某个地方犯了架构错误?我的意思是我最好使用单点登录解决方案还是?
【问题讨论】:
标签: session tomcat authentication replication load-balancing