【问题标题】:Tomcat cluster session replication for heterogenous different applications用于异构不同应用程序的 Tomcat 集群会话复制
【发布时间】: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


    【解决方案1】:

    即使使用单点登录 (SSO),每个 Web 应用程序都会获得不同的 HttpSession,因此您不能只“查找它们的本地 HttpSession”。如果您使用 Tomcat 的 SSO,我不清楚这是否适用于整个集群。

    如果将cookie路径设置为“/”,只会造成混淆,因为对于不同的应用,不同的session id需要有不同的cookie。

    【讨论】:

    • 非常正确,但是“业务应用程序”,即 node3 (core0) 只有一个 WAR,因此应该自动共享会话。
    • 没关系,但我不确定 SSO 是否可以跨集群工作。你必须检查一下。如果它确实有效,那么你就准备好了。
    猜你喜欢
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 2022-06-20
    • 1970-01-01
    • 2013-12-14
    • 1970-01-01
    • 2013-05-09
    相关资源
    最近更新 更多