我有一个我需要解决的架构问题。我有一个使用Hibernate和二级ehCache的应用程序,它可以访问单个数据库。此应用程序跨AWS中的多个服务器部署在AWS中的多个区域(一些在美国,一些在欧盟等)。该应用程序目前只读,但我们需要添加写入功能。问题在于如何使服务器及其本地二级缓存保持同步?
任何建议都将不胜感激。
答案 0 :(得分:0)
我遇到了类似的问题,目前实施的解决方案是使用JMS消息传递。每当更新缓存时,它都会在所有主机正在监听的主题上发送消息。一旦收到消息,他们就会更新缓存中的相关条目。
所以保持同步。
Hibernate无法发现数据库中的数据发生了变化。因此,您有责任通过轮询DB或使用上面建议的消息来管理它。
我还建议评估Ehcache 2.0之后提供的分布式EHcache [不确定版本]