为什么在存储到数据存储中时需要支持Jetty中的粘性会话?

时间:2015-07-05 10:32:59

标签: session jetty

我希望将会话存储在外部数据存储中而不是内存中。我想这样做是为了让会话数据可用于我的所有Jetty服务器实例。

所以我读了Jetty文档:

Session Clustering with a Database

Session Clustering with MongoDB

两个文档都有以下声明:

  

持久会话机制与支持粘性的负载均衡器配合使用。

我的问题是 - 为什么我需要这种机制的粘性?重点是允许群集中的任何服务器提供任何请求,因为会话数据存储在外部。

1 个答案:

答案 0 :(得分:1)

问题是servlet规范不提供会话周围的任何事务语义。因此,除非您的会话是粘性的,否则涉及同一会话的并发请求可能会转到多个服务器并产生不一致的结果,具体取决于写入的交错。如果您的会话被阅读 - 大多数情况下您可能会使用非粘性会话,尽管您可能会发现会话的时间比您预期的更快或更晚,因为有多个服务器试图管理相同的会话会话。