【问题标题】:How to manage a User Session on a AWS server?如何在 AWS 服务器上管理用户会话?
【发布时间】:2016-03-22 21:06:15
【问题描述】:

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

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

P.S.:我使用的是 Struts2。

【问题讨论】:

标签: java struts2 httpsession usersession


【解决方案1】:

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

  1. 让您的负载平衡器实施“粘性”会话。在这里,负载均衡器将来自同一个客户端的所有请求发送到同一个应用服务器。会话在本地维护,一切正常,就好像只有一个应用服务器一样。当应用服务器出现故障时,所有与该服务器相关的会话都将丢失。

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

要决定使用哪种方法,您需要考虑在丢失服务器时不终止会话的重要性、会话状态大小等。在我看来,公共会话存储几乎总是可取的,因为它是操作上更容易处理 - 您可以随时随意攻击服务器,而不会终止会话。

我不会推测可用于支持实施的产品的可能选择,因为这纯粹是基于意见和本网站的题外话。可以说有很多不错的选择 - 适合您的特定选择取决于您的具体要求和专业知识。

【讨论】:

    猜你喜欢
    • 2017-05-15
    • 2020-04-21
    • 2015-08-06
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 2011-09-23
    相关资源
    最近更新 更多