热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

EhCache作为分布式缓存的研究

EhCache支持两种拓扑结构,一种是DistributedCaching,另一种是ReplicatedCachingDistributedCaching这和一般意义上的分布式缓存非常类似,这一类型的缓存是有client-server之分的,application通过client向server端请求缓存数据,在server端,数据是散
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各结点上数据可能是不一样的。

相关文章:

关于Memcached分布式拓扑结构的可靠性 http://www.linuxidc.com/Linux/2011-10/45866.htm

安装Memcached http://www.linuxidc.com/Linux/2011-10/45867.htm

Memcached监控工具 http://www.linuxidc.com/Linux/2011-10/45868.htm

另一方面: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实现分布式集群的经验,欢迎指正。 


推荐阅读
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • 开发笔记:Memcached高性能内存对象缓存系统
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Memcached高性能内存对象缓存系统相关的知识,希望对你有一定的参考价值。一、Memcached概述 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 电信网为不能访问联通服务器的网站_老板说网站慢,我们总结了三大阶段提升性能...
    作者:李平来源:https:www.cnblogs.comleefreemanp3998757.html前言在前一篇随笔《大型网站系统架构的演化》中&# ... [详细]
  • 一,织梦后台后台设置进入系统后台,在[系统基本参数]下面的性能选项卡当中,关于memcache进行如下配置:cfg_memcache_enable:是否启用memcache缓存,如果为否(N) ... [详细]
  • 相对于内存来说,磁盘的容量是非常大的,所以Linux内核实现了一个叫 内存交换 的功能--把某些进程的一些暂时用不到的内存页保存到磁盘中,然后把物理内存页分配给更紧急的用户使用,当 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 大厂首发!思源笔记docker
    JVMRedisJVM面试内存模型以及分区,需要详细到每个区放什么?GC的两种判定方法GC的三种收集方法:标记清除、标记整理、复制算法的 ... [详细]
  • 1.安装libeventyuminstalllibevent.x86_64libevent-devel.x86_64没有libevent编译memcached为出错checking ... [详细]
  • 实战项目memcached+tomcat+session+nginx在工作中的应用和配置
    环境介绍:公司根据实际需要搭建一个购物网站,当用户购物时可以将不同商品,放到同一个购物车中进行同时付款。环境的搭建:外网用户IP地址:1.1.1.1主机名:fanxiaohui用户 ... [详细]
  • 对于WEB应用集群的技术实现而言,最大的难点就是如何能在集群中的多个节点之间保持数据的一致性,会话(Session)信息是这 ... [详细]
  • 开发笔记:超全的《 Django 入门教程 》上线了,居然还免费!
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了超全的《Django入门教程》上线了,居然还免费!相关的知识,希望对你有一定的参考价值。 ... [详细]
author-avatar
手机用户2502900175
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有