servlets - 集群环境和 session 管理(Servlets)

标签 servlets cluster-computing

我在读一本关于 Java Servlet 的书时遇到了 HTTPSessionActivationListener。指定在集群环境中,只能有一个包含特定 session ID 的 HTTPSession 对象。假设集群中有 2 个节点 A 和 B -

第一个请求转到节点 A。这里创建了一个 HTTPSession S1 以及 session 属性,响应返回给客户端。 同一客户端发送后续请求。此请求转到节点 B。现在 session 对象 S1 从节点 A 移动到节点 B(在节点 B 中激活并在节点 A 中钝化)。

在这种情况下, session 对象和属性是否应该是可序列化的?如果它不可序列化会怎样?

为了计算事件 session 数,是否应该将两个节点中的 session 相加以获得实际值?这通常是如何完成的?

另外我猜想 ServletContext 对于每个 JVM 都是唯一的。是否将设置为 servletcontext 一部分的属性复制到集群所有节点中的 servlet 上下文?

最佳答案

通常我看到人们使用粘性 session (通常由负载均衡器提供,例如 ec2 ELB 具有此功能:http://shlomoswidler.com/2010/04/elastic-load-balancing-with-sticky-sessions.html),或者 session 数据存储在共享存储库中,例如数据库或 NoSQL店铺。

关于servlets - 集群环境和 session 管理(Servlets),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9862449/

相关文章:

java - 使用 System.out.println 在 tomcat 中的 JavaServlet 中进行调试?

java - 这是一个很好的做法和选择 :Sending a Hash Map object or a JSON from java servlet to jsp?

python - 如何对 CSV 文件中的数据进行聚类(或分组)?

jms - 将消息从一个 ActiveMQ 转发到另一个?

java - Tomcat和防洪

java - war 中的文件路径

java - Java EE servlet 的(内存)占用空间是多少?

mongodb - 配置MongoDB集群

Node.js 多服务器集群 : how to share object in several nodes cluster

Hadoop:为什么我在 Namenode Information Web 中收到 "Max Non Heap Memory is -1 B."消息?这是什么意思?