Java 如何在AWS服务器上管理用户会话?

Java 如何在AWS服务器上管理用户会话?,java,struts2,httpsession,usersession,Java,Struts2,Httpsession,Usersession,我的后端是JAVA,网站托管在AWS服务器上(2个或更多)。在我的网站上处理用户会话的最佳方式是什么 查看HTTPSession,但它的缺点是一台服务器的会话与另一台服务器的会话没有相同的属性。 那么,处理用户会话的最佳解决方案是什么 注意:我正在使用Struts2。当您有多个应用程序服务器可以处理请求时,有两种主要的方法来处理会话状态: 让您的负载平衡器实现“粘性”会话。在这里,负载平衡器将来自同一客户端的所有请求发送到同一应用服务器。该会话在本地进行维护,一切都像只有一台应用服务器一样工作。

我的后端是JAVA,网站托管在AWS服务器上(2个或更多)。在我的网站上处理用户会话的最佳方式是什么

查看
HTTPSession
,但它的缺点是一台服务器的会话与另一台服务器的会话没有相同的属性。 那么,处理用户会话的最佳解决方案是什么


注意:我正在使用Struts2。

当您有多个应用程序服务器可以处理请求时,有两种主要的方法来处理会话状态:

  • 让您的负载平衡器实现“粘性”会话。在这里,负载平衡器将来自同一客户端的所有请求发送到同一应用服务器。该会话在本地进行维护,一切都像只有一台应用服务器一样工作。当一个应用服务器宕机时,所有与该服务器相连的会话都将丢失

  • 拥有可供所有应用服务器使用的通用会话存储。当应用程序服务器接收到请求时,它会从会话存储中获取会话状态,修改完该请求的会话状态后,它会将其写回存储。会话存储可能是共享数据库,也可能是所有应用服务器远程访问的内存缓存。如果应用服务器宕机,则不会丢失任何会话。但是,在网络上读取/写入会话的每个请求上都有额外的开销

  • < >为了决定使用哪种方法,你需要考虑在服务器丢失、会话状态大小等情况下没有会话被破坏的重要性,在我看来,公共会话存储几乎总是可取的,因为它在操作上更容易处理—您随时都可以在不终止会话的情况下攻击服务器


    我不会猜测支持实现的可用产品的可能选择,因为这纯粹是基于观点的,与本网站无关。只要说有很多好的选择就够了——适合你的特定选择取决于你的具体要求和专业知识。

    你看到这个问题的答案了吗: