目前我们有 2 个应用服务器,每个都有应用级缓存和集中式数据库服务器。为了使两台服务器的应用程序缓存保持同步,我们在两者之间设置了 JMS 代理。在向 JMS 发送消息的一台服务器上清除缓存时,由于已注册其他服务器,因此它将获取消息并根据消息内容清除特定条目。
由于此消息传递系统在清除缓存条目时增加了延迟,因此在一段时间内,应用程序级缓存之间会出现不一致。
因此,我们考虑使用集中式缓存服务器来避免所有这些额外的工作,以保持所有缓存同步。
我们正在考虑使用Ehcache/Terracotta或Hazelcast,这些缓存包含结果集、锁信息和一些系统特定的变量。
请为我们建议最佳缓存解决方案。