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