Session 异构不同应用程序的Tomcat群集会话复制

Session 异构不同应用程序的Tomcat群集会话复制,session,tomcat,authentication,replication,load-balancing,Session,Tomcat,Authentication,Replication,Load Balancing,因此,我可能在脑海中知道这个问题的答案,但我似乎没有找到答案,当我思考这个问题时,我会更加困惑 我正在研究web应用程序架构,以实现高可扩展性/可维护性(以及所有其他酷炫的功能)。我试图研究一种架构,其中我们有一个具有3个节点的集群 节点1。[高安全性,中等RAM,低磁盘空间]有管理应用程序,如configurationService,authenticationService(我称之为admin0) 节点2。[中等安全性、低RAM、高磁盘空间]具有面向内容的应用程序,例如媒体服务(如文件托管)

因此,我可能在脑海中知道这个问题的答案,但我似乎没有找到答案,当我思考这个问题时,我会更加困惑

我正在研究web应用程序架构,以实现高可扩展性/可维护性(以及所有其他酷炫的功能)。我试图研究一种架构,其中我们有一个具有3个节点的集群

节点1。[高安全性,中等RAM,低磁盘空间]有管理应用程序,如configurationService,authenticationService(我称之为admin0)

节点2。[中等安全性、低RAM、高磁盘空间]具有面向内容的应用程序,例如媒体服务(如文件托管)、配置文件等。仅是面向存储的节点,我称之为misc0

节点3。[低安全性、高RAM、中等磁盘空间]具有业务应用程序,即web应用程序的核心应用程序

因此,这分离了关注点,如果我们想要扩展,我们可以单独扩展每个节点。此外,我认为节点3将是负载最大的节点

现在,问题是,如果用户在node1(admin0)/authenticationService上获得身份验证,我希望为集群中的所有应用激活他的会话,这样他们就不必再查询authenticationService,他们应该只查找本地HttpSession

现在,带有Delta(或Backup)manager的Tomcat群集提供了此功能,但它们只与安装此应用程序的节点共享会话。虽然delta manager将共享会话,即使应用程序未安装在对等机上,但我不知道如何使用该会话?我知道您可以将cookie的路径设置为“/”,这是我的解决方案吗

我在什么地方犯了建筑错误吗?我的意思是,我最好使用单点登录解决方案还是

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


如果将cookie路径设置为“/”,只会造成混乱,因为不同的应用程序需要为不同的会话ID使用不同的cookie。

非常正确,但“业务应用程序”即node3(core0)只有一个WAR,因此会话应该自动共享。这很好,但我不确定SSO是否可以跨集群工作。你得检查一下。如果它真的起作用,那么你就准备好了。