Tomcat Web应用程序之间的共享缓存

cam*_*mbo 7 java tomcat synchronization caching shared

我正在寻找一种在不同主机上运行的两个tomcat web应用程序之间共享缓存的解决方案.缓存用于数据同步,因此必须保证缓存在两个tomcat实例之间始终保持最新.(对不起,我不是100%确定这个要求的正确术语是"一致性"还是更具体的术语,如具有ACID属性).另一个要求当然是它应该快速访问缓存,其读写次数与读取次数相同.我确实可以访问共享文件系统,因此这是一个考虑因素.

我看过像ehcache这样的东西,但是为了在webapps之间获得共享缓存,我需要在Terracotta环境之上实现或使用新的ehcache缓存服务器.前者(Terracotta)似乎有点矫枉过正,而缓存Web服务器似乎无法提供我想要的快速性能.

我看到的另一个解决方案是在Redis或memcachedb等快速键值存储上构建简单的东西.Redis是内存中的,但可以很容易地配置为集中式缓存,而memcachedb是一个基于磁盘的持久缓存,可以工作,因为我有一个共享文件系统.

我正在寻找有关如何最好地解决这个问题的建议.该解决方案需要是一种相对成熟的技术,因为它将用于生产环境.

提前致谢!

Rya*_*des 4

我很确定如果您需要分布式缓存,您不需要 terracotta 或 ehcache 服务器。使用四种复制机制之一的 Ehcache就可以了。

但是,根据您所写的内容,我猜您正在寻找的不仅仅是缓存。Memcached/Ehcache 是您可以将其称为应用程序缓存层的示例 - 仅此而已。

如果您发现自己使用“保证”“最新”“ACID”等词语,那么最好使用内存数据库,例如 Oracle Times Ten/MySQL Cluster/Redis 以及基于磁盘的持久存储。