最近几天,由于想做tomcat负载均衡,搭建成功后就出现了一个问题,那就是缓存怎么办。我用ibatis的缓存直接做的,所以如果多个tomcat各自的缓存都是在自己进程的内存中,互不相干。这就带来了麻烦。在网上搜索资料,还是有收获的,发现分布式的缓存架构有EHCache,OSCache.
EHCache性能比memcached要好一点,但是客户端只有java的,而memcached是各种语言都有,所以得到了广泛的运用。个人认为memcached很不错,因为我在项目中socket通讯得到的数据都是用它来缓存的,很好用。
OSCache也是一个很好的分布式缓存。但是搭建时容易出现问题,报classnotfindexception。解决方案,是换用jgroups官网的jar包,然后在jvm上修改参数-Djava.net.preferIPv4Stack=true,如果你的系统支持ipv6,而是用的是ipv4协议就修改下。这样服务器就能启动成功了
具体OSCache安装如下
1. 导入oscache-2.4.1.jar(可以到官网下载)
2.定义oscache.properties
#是否使用内存作为缓存空间
cache.memory=true
#缓存管理事件监听器,通过这个监听器可以获知当前Cache的运行情况
#cache.event.listeners=com.opensymphony.oscache.plugins.clustersupport.JavaGroupsBroadcastingListener
#如果使用磁盘缓存(cache.memory=false),则需要指定磁盘存储接口实现
#cache.persistence.class=com.opensymphony.oscache.plugins.diskpersistence.DiskPersistenceListener
# 磁盘缓存所使用的文件存储路径
# cache.path=c:\\myapp\\cache
# 缓存调度算法,可选的有LRU,FIFO和无限缓存(UnlimitedCache)
# cache.algorithm=com.opensymphony.oscache.base.algorithm.FIFOCache
# cache.algorithm=com.opensymphony.oscache.base.algorithm.UnlimitedCache
cache.algorithm=com.opensymphony.oscache.base.algorithm.LRUCache
#内存缓存的最大容量
cache.capacity=1000
# 是否限制磁盘缓存的容量
# cache.unlimited.disk=false
# 基于JMS的集群缓存同步配置
#cache.cluster.jms.topic.factory=java:comp/env/jms/TopicConnectionFactory
#cache.cluster.jms.topic.name=java:comp/env/jms/OSCacheTopic
#cache.cluster.jms.node.name=node1
3.定义xml
<cacheModel id="userCache" type="OSCACHE">
<flushInterval hours="24"/>
<flushOnExecute statement="user_space.insertUsers"/>
<flushOnExecute statement="user_space.updateUsers"/>
<property name="size" value="1000" />
</cacheModel>
到此基本配置完毕。具体的测试细节有时间继续补上...
由于网上缓存的相关文章都是一个样,相互copy。等我把项目搞定后,一定弄一个好的解决方案,这样能方便大家,也为以后自己用上。
分享到:
相关推荐
1. **配置参数**:在`conf.Configuration`类中,可以找到关于分布式缓存的配置选项,如`mapreduce.job.cache.files`和`mapreduce.job.cache.local.files`等,用于指定要缓存的文件和JARs。 2. **JobTracker/...
分布式缓存服务器Memcached是互联网应用中广泛使用的内存对象缓存系统,用于减轻数据库的负载,提高应用程序的性能。Memcached的设计目标是简单且高效,它通过在内存中存储数据来提供快速的数据访问。让我们深入了解...
分布式缓存是现代大型互联网应用中不可或缺的一部分,它能够有效地解决单机缓存容量有限以及高并发场景下的数据访问性能问题。本项目基于C#语言实现了分布式缓存系统,提供了详细的类库使用说明,旨在帮助开发者更好...
`shopee.md`可能是一个关于Shopee(一家电子商务公司)的案例研究,解释了如何在实际生产环境中使用此分布式缓存。 最后,`README.md`文件包含了项目的介绍、安装指南、使用示例和贡献说明,是理解项目用途和结构的...
本文将围绕《可伸缩服务架构:框架与中间件》一书中关于分布式缓存的通用方法进行深入探讨。 首先,分布式缓存的编程方法主要有三种:编程法、Spring注入法和注解法。编程法是最基础的方式,通过直接调用缓存服务的...
"PPT.pptx"可能包含了关于分布式缓存设计模式和最佳实践的讲解,例如CAP理论(一致性、可用性和分区容错性)、Redis的数据持久化策略(RDB和AOF)以及主从复制、Sentinel哨兵系统和Cluster集群的使用。 总的来说,...
最后,本文提到的参考文献包括《深入分布式缓存从原理到实践》、维基百科中关于云计算的解释、以及相关作者的其他作品,这些资料为本文提供了理论和实践的基础。 综上所述,分布式缓存系统数据迁移的关键技术研究与...
### Memcached分布式缓存 #### 一、Memcached的基础 **1.1 Memcached是什么?** Memcached是一款高性能、分布式内存对象缓存系统,旨在通过减轻数据库负担来加速动态网络应用的速度。它通过在内存中缓存数据和...
Ehcache是一个高性能、轻量级的Java分布式缓存库,它被广泛应用于提升应用程序的性能,通过存储经常访问的数据来减少对数据库的依赖,从而加快系统的响应速度。本入门案例将带你了解如何使用Ehcache实现分布式缓存,...
分布式缓存Memcached实例详解 Memcached是一款由Danga Interactive公司设计并开发的高效、分布式内存对象缓存系统。它的主要目标是减轻数据库的负担,提高动态应用程序的响应速度,通过将数据存储在内存中,使得...
"20120102 net下memcached 分布式缓存系统应用" 这个标题表明这是一个关于在.NET环境中使用Memcached作为分布式缓存系统的实践教程或参考资料。时间戳“20120102”可能指的是资料的创建日期,暗示了这是较早时期的...
【分布式缓存Redis + Memcached】是现代互联网应用中常用的技术组合,用于高效地存储和检索数据,以提高系统的响应速度和并发处理能力。这里我们将深入探讨这两个分布式缓存系统的特点,以及它们在面试中经常遇到的...
分布式缓存Redis是一种高效的数据存储和访问解决方案,尤其适合处理大量数据并提供高速读写访问。Redis由张小博这样的技术专家所推崇,通常应用于软件开发领域,特别是需要分布式系统支持和数据一致性保证的场景。 ...
以上就是关于 Redis 和 Memcached 的一些经典面试问题及其解析,了解这些知识点有助于理解分布式缓存的工作原理和优化策略。在实际开发中,结合具体业务场景选择合适的缓存系统,并进行有效的优化,可以显著提升系统...
读者可以期望从这本书中了解到关于分布式缓存的原理、优势、应用场景,以及如何在分布式架构中整合和使用Redis。 部分内容提到的***可能是这本书的电子版或资源下载链接,但是由于OCR扫描技术的原因,部分内容可能...
标题中的“21-08-17_Nop_4.40.3(015_Redis分布式缓存数据库的配置实现)”指的是一个关于nopCommerce 4.40.3版本的教程或示例,其中特别关注的是如何配置Redis作为分布式缓存数据库。这个主题涉及到电子商务平台开发...
- **关于分布式缓存**:深入探讨了分布式缓存的架构、逻辑视图、网络视图及内存层次结构,揭示了其在大规模分布式系统中的高效运作机制。 #### 性能提升与故障排查 文档中还详细介绍了如何通过调整配置参数来优化...
通过引入分布式缓存机制,可以有效地减轻单一缓存服务器的压力,提升系统的整体性能。分布式缓存可以将数据分布在多个缓存节点上,从而实现更高的读写性能和更好的容错能力。这不仅能提升专利审查的效率,还能确保...
在这个项目中,"ASPNETCoreCache" 提供了关于如何在ASP.NET Core中实施分布式缓存的源代码,这通常是为了提高应用程序性能和减少数据库负载。分布式缓存是将数据存储在分布式系统中的缓存策略,它可以在多台服务器...