【问题标题】:Hibernate/ehCache deployed across multiple non-clustered servers跨多个非集群服务器部署的 Hibernate/ehCache
【发布时间】:2014-12-19 12:21:03
【问题描述】:

我有一个架构问题需要解决。我有一个使用 Hibernate 和二级 ehCache 的应用程序,它访问单个数据库。此应用程序部署在 AWS 中多个区域(一些在美国,一些在欧盟等)的 AWS 中的多个服务器上。该应用程序当前是只读的,但我们需要为其添加写入能力。问题在于我们如何使服务器和它们的本地二级缓存保持同步?

  • Hibernate 是否能够判断数据库中的对象是否已更改并且其缓存副本是否已过时?
  • 我们需要设置 ehCache 复制吗?
  • 我们是否应该将 ehCache 换成分布式二级缓存(因为它不是服务器本地的,这似乎违背了它的目的)
  • 还是完全删除缓存,直接进入数据库进行 K.I.S.S?

任何建议将不胜感激。

【问题讨论】:

    标签: java hibernate amazon-web-services ehcache


    【解决方案1】:

    我有一个类似的问题,目前实施的解决方案是使用 JMS 消息传递。每当更新缓存时,它都会在所有主机正在收听的主题上发送一条消息。一旦他们收到消息,他们就会更新缓存中的相关条目。

    所以一切都保持同步。

    Hibernate 无法发现 DB 中的数据发生了变化。因此,您有责任通过轮询数据库或使用我上面建议的消息来管理此问题。

    我还建议评估 Ehcache 2.0 之后提供的分布式 EHcache [不确定版本]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-15
      • 2021-08-01
      • 2015-12-20
      • 2013-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多