文档章节

ehcache作为分布式缓存的研究

猪刚烈
 猪刚烈
发布于 2014/10/12 11:40
字数 648
阅读 29
收藏 0
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实现分布式集群的经验,欢迎指正。



相关文章:



关于memcached分布式拓扑结构的可靠性


安装memcached



memcached监控工具


本文转载自:http://blog.csdn.net/bluishglc/article/details/6889928

共有 人打赏支持
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
私信 提问
Ehcache和MemCached比较分析

项目 Memcache Ehcache 分布式 不完全,集群默认不实现 支持 集群 可通过客户端实现 支持(默认是异步同步) 持久化 可通过第三方应用实现,如sina研发的memcachedb,将cache的数据保存到[ur...

浮躁的码农
2015/07/24
0
0
BlackHole开发日记-几种缓存方式性能测试

早上做了ehcache的benchmark,set和get一个40k的字符串(压缩到19k)到ehcache。10000次set和get操作,每次都使用不同的key。 ehcache的测试结果(10000次): 结果相当令人满意。 作为对比,使用...

黄亿华
2012/12/19
0
0
Ehcache的简单使用

前段时间公司的新项目要求使用Hibernate二级缓存,近期通过在网上也看了不少帖子。 ehcache是一个非常轻量级的框架,1.2以后就支持了集群,并且是Hibernate默认的缓存provider. 主要特性 1....

Smember
2015/11/30
62
0
BlackHole开发日记-尝试引入缓存,出现问题

今天在公司公开了这个项目,得到大家的肯定,坚定了把这个项目做下去的决心。 下午公司项目codereview,被指出很多问题。虽然自己在代码可扩展性上做了不少努力,但是大家都反应可读性不那么...

黄亿华
2012/12/19
0
0
EhCache 分布式缓存/缓存集群

开发环境: System:Windows JavaEE Server:tomcat5.0.2.8、tomcat6 IDE:eclipse、MyEclipse 6.6 开发依赖库: JavaEE5、Spring3.0.5、ehcache-core-2.5.2.jar Email:hoojo_@126.com Blog......

ibm_hoojo
2012/07/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

spring源码阅读笔记(一)

ClassPathXmlApplicationContext 与 FileSystemXmlApplicationContext 用了这么久的框架,是时候搞一下源码了,一般最初接触spring 从以下步骤开始 创建一个bean类 并创建 ooxx.xml之类的spr...

NotFound403
1分钟前
0
0
MySQL主从配置

12月14日任务 17.1 MySQL主从介绍 17.2 准备工作 17.3 配置主 17.4 配置从 17.5 测试主从同步 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单将就是A/B两个服务器做主从后,在A上写...

robertt15
4分钟前
0
0
我的Linux系统九阴真经

在今天,互联网的迅猛发展,科技技术也日新月异,各种编程技术也如雨后春笋一样,冒出尖来了。各种创业公司也百花齐放百家争鸣,特别是针对服务行业,新型互联网服务行业,共享经济等概念的公...

问题终结者
16分钟前
4
0
Java 使用 gson 对 json 根据 key 键进行排序

引入Google的gson jar <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.0</version>......

yh32
18分钟前
1
0
Vue.use源码解析

什么是Vue插件 关于什么是Vue插件大家可以去看官网的解释 ,总得来说就是提供一个全局注册/调用的能力。 怎么用 我们以Weex为例。 首先有一个toast.js const Toast = {}Toast.install = (Vu...

peakedness丶
25分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部