【问题标题】:Static variable in Spring session bean on a cluster集群上 Spring 会话 bean 中的静态变量
【发布时间】:2014-08-28 06:26:25
【问题描述】:

我有一个带有作用域会话的 Spring bean,它实现了可序列化。我的应用程序部署在 3 个节点的集群上。集群中启用了会话复制。 我在会话范围 bean 中的变量之一是静态变量。我了解会话复制将利用序列化。那么当会话复制发生时,我的静态变量也会被复制吗?

提前致谢。

【问题讨论】:

  • 你用静态变量做什么?假设两个不同服务器上的静态变量有两个不同的值,您希望它最终得到什么值?
  • 它是一个静态的最终字符串变量,用于存储一些字符串文字的值。它没有两个不同的值。
  • 在这种情况下,它将使用该值进行实例化,因此所有会话都将具有相同的值。
  • 感谢您的快速回答。

标签: java spring session static cluster-computing


【解决方案1】:

最近我正在研究集群中的 tomcat 会话复制。我也有同样的疑问,并试图通过在集群中复制静态值来解决这个问题。

我试图改变静态变量的值,并停止当前节点。当请求转到集群中的其他节点时(因为当前节点已关闭),我观察到静态变量不是保存当前更改的值,而是在加载类时初始化的值。

因此静态值不会在集群中复制。

【讨论】:

  • @Rakesh 如果我的回答对你有帮助,请投赞成票
猜你喜欢
  • 2012-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多