Ana*_*var 8 java caching ehcache centralized hazelcast
目前我们有2个应用程序服务器,每个都有应用程序级缓存,并具有集中式数据库服 为了使两个服务器应用程序缓存保持同步,我们在其间设置了JMS代理.在一个服务器上清除缓存,该服务器向JMS发送消息,因为其他服务器已注册,因此它将获取消息并根据消息内容清除相关条目.
由于此消息传递系统在清除缓存条目时增加了延迟,因此在一段时间内应用程序级缓存之间将存在不一致.
因此,我们考虑使用集中式缓存服务器来避免所有这些额外的工作,以保持所有缓存同步.
我们正在考虑使用Ehcache/Terracotta或Hazelcast,这些缓存保存结果集,锁信息和一些系统特定的变量.
请为我们推荐最佳缓存解决方案.
我可能无法为您推荐最佳解决方案,但我会尝试提出一些想法:
Hazelcast:提供非常易于使用的分布式地图(还有很多其他值得一看的东西 - 分布式SQL查询非常简洁):
Map<String, Object> map = Hazelcast.getMap("xxx");
Run Code Online (Sandbox Code Playgroud)
你完成了 使用标准API在地图上工作.Hazelcast配置/设置非常简单(与Ehcache/TC相比).监控webapp也很容易使用和有用,但有些东西缺失.对于小型集群(如2台服务器),性能应该足够了.
Ehcache/Terracotta:将为您的设置(Terracotta Server)引入新的基础架构组件 - 可能是一个缺点.根据我的经验,使用此设置非常强烈,需要学习和尝试.承诺是企业级的性能和监控设施.
如果您没有极高的性能要求,我个人会选择Hazelcast并避免Ehcache/TC的复杂性.
我们一直在使用集中式Memcached服务器(作为 Hibernate 二级缓存和其他缓存要求),它对我们来说运行良好。我们正在将 Memcached 与XMemcached客户端一起使用,到目前为止它的工作没有任何问题。
归档时间: |
|
查看次数: |
4804 次 |
最近记录: |