繁体   English   中英

了解整个集群环境中的静态变量

[英]Understanding of Static variables across cluster environment

我们一直在尝试实现某种缓存机制,其中我们试图通过插件呈现对象列表。 然后,将这些值列表保存在类中的并发哈希图中。 当需要通过UI时,我们将创建该类的实例,并引用此缓存以显示值列表。 可以通过联机按钮或通宵工作来刷新缓存(如果为空/空,程序也会加载缓存)。

直到我们处于单个群集中,这一切都正常。 当我们移至集群环境时,当我们在其他系统上添加新的/修改的对象(通过插件进行交互)时,该列表仅在批处理兼在线服务器上刷新,而另一个集群不同步。 这个问题间歇地发生,现在对静态变量有疑问。 是否为单独的jvm创建了一个静态变量? 如果是这样,它是否以某种方式同步。 还有关于为什么这是间歇性的任何提示(我们怀疑批处理运行期间是否存在集群外的问题-但不确定)。

私人静态地图_cache = new ConcurrentHashMap(16,0.75,1)

Java 1.6版

使用IBM WAS服务器

当然,您的静态变量仅在创建的JVM中有效且有意义。

要解决此问题,您可以通过在批处理同步完成后向所有其他服务器发送更新请求来解决问题。

但是,正式的方法是将缓存存储分为独立服务器(例如redis)而不是静态变量

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM