`
javahigh1
  • 浏览: 1291817 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

ehcache作为分布式缓存的研究

 
阅读更多
ehcache支持两种拓扑结构,一种是Distributed Caching,另一种是Replicated Caching

Distributed Caching


这和一般意义上的分布式缓存非常类似,这一类型的缓存是有client-server之分的,application通过client向server端请求缓存数据,在server端,数据是散列到多个节点上的。具体而准确的拓扑结构见下图(该图正是Terracotta Server Array的拓扑结构,ehcache的分布式实现是依赖Terracotta Server Array实现的):


一方面:L1是客户端结点,基于Terracotta Server Array的ehcache集群是由L1和L2共同组成的,它们一起共享应用程序的状态和数据。L1相当于一级缓存,存储当前应用结点上的“hot-set”数据。L1各结点上数据可能是不一样的。


另一方面:L2作为二级缓存,将储存所有L1结点上的数据,作为所有缓存数据的一份完整拷贝。在L2上,所有数据会均匀散列到MirrorGroup上,从而成为典型的“分布式”缓存,同时,每个MirrorGroup会有一个active结点和0到多个standby(passive)结点,standby结点是active结点的备份,一单active结点当机,standby结点就将自动成为active节点,从而确保一个MirrorGroup的可靠性,也即所谓的“分区容错性”(Partition Tolerance) 。


应该说,Terracotta Server Array的拓扑结构在水平伸缩和可靠性上都是非常理想的,但是非常遗憾的是,Terracotta Server Array只在商业版的ehcache中提供,换言之,开源版本的ehcache是无法实现标准意义上的“分布式缓存”的。

Replicated Caching


和Distributed Cacheing相比,Replicated Caching并不具有太多的优势,特别是在scale out方面。Replicated Caching和应用服务器集群的session复制非常类似,其作用仅限于确保在集群环境下各应用结点的缓存数据保持一致。ehcache的缓存复制支持rmi,jms,cache server等多种方式。

初步结论


如果你需要在开源产品范围内寻找真正的分布式缓存,echache可能不是你想要到的,memcached可能是一个不错的选择。当然,限于时间问题,我对ehcache,特别是Replicated拓扑结构的caching研究地不是很深入,如果读者有关于如何基于开源版本的ehcache实现分布式集群的经验,欢迎指正。



分享到:
评论

相关推荐

    Ehcache Java 缓存框架 v3.10.8.zip

    Ehcache 3.x版本引入了重要的改进,包括基于Java 8的全新API,更强大的缓存管理,以及对分布式缓存的支持。这个版本的核心特性包括: 1. **模块化设计**:Ehcache 3.x采用模块化架构,允许用户根据需要选择不同的...

    memcached完全剖析ehcache memcached redis 缓存技术总结

    文件“alisoft-xplatform-asf-cache”可能是指阿里巴巴开源的XPlatform中的ASF Cache模块,这是一个分布式缓存框架,结合了上述缓存技术的一些特点,可能包含有对这些缓存系统的研究和实现,适用于大型分布式系统。...

    缓存页面ehcache

    标题中的“缓存页面ehcache”指的是在软件开发中使用Ehcache作为缓存机制来优化页面加载速度的技术。Ehcache是一款广泛使用的开源Java缓存库,它能够有效地存储和检索数据,以减少对数据库的访问,提高系统的响应...

    ehcache (四)以上例子综合应用代码

    在IT行业中,缓存技术是优化系统性能的关键因素之一,Ehcache作为一款广泛使用的Java缓存库,为开发者提供了高效、便捷的内存缓存解决方案。本文将详细讲解Ehcache在实际应用中的综合运用,结合提供的链接资源,我们...

    ehcache学习笔记

    ** Ehcache 学习笔记** Ehcache 是一个开源的 Java 缓存系统,它提供了在应用...对于有志于深入研究缓存技术的开发人员来说,阅读 `ehcache-core-2.4.5.jar` 和 `ehcache-web-2.0.3.jar` 的源码会是非常有价值的实践。

    Ehcache集群使用

    通过上述步骤,你将能够成功地在项目中部署和使用 Ehcache 集群,从而实现高效的分布式缓存解决方案。同时,持续学习和研究 Ehcache 的源码,有助于更深入地理解和定制它的行为,以满足特定的业务需求。

    J2Cache - 基于内存和 Redis 的两级 Java 缓存框架

    它允许开发者利用 Ehcache(或 Caffeine)作为本地缓存,同时集成 Redis 作为分布式缓存,以应对大规模并发访问和数据共享的需求。 **一级缓存 - Ehcache (或 Caffeine)** Ehcache 是一款广泛使用的 Java 缓存库,...

    JAVA缓存与大型网站架

    Ehcache是一款广泛使用的JAVA缓存解决方案,它支持本地缓存和分布式缓存。Ehcache的核心特性包括内存和磁盘存储、缓存分区、缓存预热以及缓存过期策略。开发者可以根据实际需求配置缓存大小、生命周期和过期策略,以...

    oschina+技术架构介绍.ppt

    在技术框架选择上,OSChina 使用了Velocity作为模板引擎,Lucene作为搜索引擎,Ehcache作为JVM缓存,Dbutils作为数据库工具包,还涉及openid、图片处理、文件上传和网络工具包等。OSChina 的架构遵循MVC(模型-视图-...

    assembly-descriptors-1.2.8.zip

    总之,Ehcache与JGroups 3的整合是实现高效分布式缓存复制的一种强大方式,尤其适用于需要高并发、大数据量处理的场景。通过对"assembly-descriptors-1.2.8.zip"和"ehcache-jgroups3-replication.zip"的学习,开发者...

    个人博客程序 jfinal blog.zip

    Ehcache是一款开源的Java分布式缓存,它可以极大地提高应用程序的性能,通过缓存频繁访问的数据,减少了对数据库的依赖,提升了系统的响应速度。在jfinal blog中,Ehcache可能用于缓存热门文章、用户信息等,以减少...

    dedu19-xuyongdan-master_java_

    这个项目的亮点在于,它将Caffeine作为本地缓存,Redis作为远程分布式缓存,两者结合形成了二级缓存体系。这样,当本地缓存未命中时,才回退到远程缓存,减少了网络IO的开销。同时,由于Caffeine在本地,对频繁访问...

    hibernate二级缓

    在实际的“hibernate二级缓存研究实验”中,我们可能发现,合理地使用二级缓存可以大大提高查询效率,特别是在高并发环境下。然而,也需注意缓存管理,避免数据过期或缓存爆炸等问题。同时,缓存的更新策略和粒度...

    ssm+ecache

    在这个"ssm+ecache"项目中,开发者不仅构建了一个基础的SSM应用,还引入了EhCache作为缓存解决方案,这对于提升应用性能和优化数据库交互至关重要。 首先,我们来了解一下Spring框架。Spring是Java企业级应用的核心...

    CMS管理系统

    Ehcache还支持分布式缓存,可以在多台服务器之间共享数据,进一步提升系统的可扩展性。 **学习与参考价值** 尽管这个CMS管理系统存在不完善之处,但它依然提供了一个很好的学习机会。开发者可以通过研究其源代码...

    Redis整合SpringCache实例

    通过以上步骤,我们可以实现Spring Cache与Redis的集成,有效地利用Redis作为分布式缓存来提升应用程序的性能。在实际项目中,还需要根据业务需求进行性能调优,比如调整缓存大小、过期策略等。同时,为了确保数据...

    基于J2EE平台的B/S系统性能优化设计研究.pdf

    13. **分布式缓存与分布式session管理**:在高并发场景下,使用分布式缓存如Memcached、Hazelcast,以及分布式session管理,如Redis+Spring Session,可以有效提高系统性能。 通过上述各个层面的优化,基于J2EE平台...

    [新闻文章]永恒文章管理系统(YHCMS) v2.0 源码版_yhcms_v20_src.zip

    7. **缓存策略**:为了提升性能,YHCMS可能使用了内存缓存(如Ehcache)或分布式缓存(如Redis),对高频访问的数据进行缓存,减少数据库查询。 8. **部署与配置**:系统部署可能需要Tomcat或Jetty等Java应用服务器...

    ck-jesse-l2cache-master_java_

    【标题】"ck-jesse-l2cache-master_java_" 指的是一个开源项目,该项目主要关注于Java...通过深入研究和实践这个项目,开发者可以提升对Java Web开发、前后端协作以及分布式缓存管理的理解,进一步提高自己的技术水平。

    hibernate-release-5.3.12.Final.zip

    3. 分布式缓存:研究如何在分布式环境中使用第二级缓存,提升高并发场景下的系统性能。 4. 扩展性:学习如何编写Hibernate事件监听器、拦截器,以及自定义类型,增强框架的灵活性。 通过深入学习和实践"hibernate-...

Global site tag (gtag.js) - Google Analytics