集群环境中的单例

将Singleton对象重构到集群环境的最佳策略是什么?

我们使用Singleton从数据库中缓存一些自定义信息。它 主要是 只读的,但是在发生某些特定事件时会刷新。

现在,我们的应用程序需要部署在集群环境中。根据定义,每个JVM将具有自己的Singleton实例。因此,当在单个节点上发生刷新事件并且刷新其缓存时,JVM之间的缓存可能不同步。

保持缓存同步的最佳方法是什么?

谢谢。

编辑:缓存主要用于向UI提供自动完成列表(性能原因),我们使用Websphere。因此,欢迎任何与Websphere相关的技巧。

回答:

最简单的方法是:

  1. 在您的单例缓存中添加一个到期计时器,以便每隔一段时间就会清除一次缓存,随后的调用会从源(例如数据库)中获取更新的数据

  2. 使用类似JMS topic / tibRV的东西为缓存实现一个通知机制。获取每个缓存实例以订阅并对该主题上广播的任何更改消息作出反应。

以上是 集群环境中的单例 的全部内容, 来源链接: utcz.com/qa/404544.html

回到顶部