`

Coherence企业级缓存(一) 特点

阅读更多

 

(From http://raymondhekk.iteye.com/blog/256831)

 
摘要:Oracle Coherence是一个企业级的分布式集群缓存框架。具有自管理,自恢复,高可用性,高扩展性等优良特点,在电信BOSS等项目中有很大的应用价值。本文对它的特点,架构,基本使用方法,JMX管理,调优等进行简要但快捷的介绍,并对于Hibernate的集成过程进行说明,为BOSS,CMP等移动项目提供一个的参考。 
关键词:分布式缓存 Coherence 

网上除了官方用户指南,关于Coherence的介绍文章资料很少,因此总结出此文,从原理到快速指南和基本最佳实践,希望对需要的人提供一个参考。 
1 Coherence 概述 
1.1 Coherence是什么 
Oracle官方网站的描述是:Coherence 在可靠的、高度可伸缩的对等集群协议之上提供了复制的、分布式的(分区的)数据管理和缓存服务。Coherence 不存在单点故障,当某台服务器无法操作或从网络断开时,它可以自动且透明地进行故障切换并重新分布它的集群化数据管理服务。当新服务器加入或故障服务器重 启时,它会自动加入集群,Coherence 会将服务切回到该服务器,透明地重新分布集群负载。Coherence 包含网络级的容错特性和透明的软重启功能,以支持服务器自我修复。 
----来自Oracle Coherence 专区 
http://www.oracle.com/technology/global/cn/products/coherence/index.html 

一个典型的Hibernate应用 + Coherence集群如下图所示: 


1.2 Coherence的特点 
1.2.1 分布式集群缓存 
Coherence是一个分布式的缓存方案,并且通过集群为应用提供强大的缓存后备支持。Coherence主要是内存缓存,即存储区域主要在内存当中。 
与一般的分布式缓存方案如JBossCache, Memcache 等相同,分布式缓存的价值基于网络IO性能高于DB查询的磁盘IO性能这样一个特点。 
Coherence所有的设计都是基于多个(可以是非常多)的JVM,很多Coherence的测试都是使用几十甚至上百个节点来进行的。 
下图展示了一个典型的WAS项目架构:WAS集群 + Near型Coherence集群架构。对于大型Web2.0网站(PHP或其他),集成Coherence也是类似的。 
 

1.2.2自管理 
Coherence使用的网络协议是TCMP ,是对UDP,TCP/IP的组合使用。Coherence能将启动的实例节点(Node)自动组成为集群(Cluster)。在一个局域网环境中,通过多播(Multicast)机制,第1个启动的Node能自动发现后启动的Node,第1,2个Node同样能发现之后启动的其他Node,依次类推,自动组成集群; 并且也能自动检测到死亡节点。集群各节点间通过单播(Unicast)机制进行数据复制,同步及发送通知消息。 
Coherence集群以统一的逻辑试图对外提供缓存的读写接口,看起来使用Coherence Client就像在使用一个缓存一样。 

1.2.3 自动容错和恢复 
基于自管理的特点,一个Node挂掉后,集群能自动监测到,并做好死亡节点的数据恢复机制,客户端依然能正确的读出在死亡节点上存储的数据,容错和恢复对客户端来说是透明的。 

1.2.4 分区缓存(Partitioned Cache) 
这是Coherence与众不同的地方。一般集群如:JBossCache, Websphere 集群等,每个Node都有数据的完整拷贝,Node间通过复制来实现数据同步和一致性,一般来说采用全复制模式,即一份数据在各节点上都有一份拷贝。这种模式下,节点要存储了较多的数据,同步复制时比较消耗网络带宽。 
而Coherence的分区缓存只将一个Node上的数据在另一节点上做1个备份,有效降低复制的消耗好时间,并节省内存总需求,只需复制模式的1/N (N为缓存节点个数)。 

1.2.5 线性扩展 
假如你的Coherence集群已经有4个Node,当系统数据量过大引起Cache容量满员,导致缓存性能下降时,可以通过启动新的Node来扩容,改善集群的性能。 
这一点也是源自分区缓存技术,集群有N个Node,每个Node只存放1/N的数据,这种设计让Coherence能够处理非常多的数据,只需要通过增加节点的数量,就可以处理更多的数据。 
下图为例,当两台机器,4个存储Node不够用时,通过新增机器,新增Node实例即可自动加入集群,提升Coherence缓存性能。  
 

线性扩展更重要体现在性能上,下图展示了,Coherence集群通过增加机器,增加Node实例使得交易耗时大幅降低,而且随着集群规模呈线性下降。 
 

1.2.6易用性 
虽然上述特点看起来似乎很复杂,但那都是Coherence自己内部的事儿。对于客户端来说,与最简单的Map 操作一样,仅仅是 put(key,value), get(key) 等。 
Java代码   
  1. NamedCache cache = CacheFactory.getCache("dist-cache");  
  2. cache.put(key, value);  
  3. Object value = cache.get(key);  


正是基于以上技术和特点,Coherence成为一个高可用性,高扩展性,高性能但使用非常简单的网格型(Data Grid)分布式缓存框架。 
分享到:
评论

相关推荐

    Coherence企业级缓存

    《Coherence企业级缓存深度解析》 Oracle Coherence是一款高效的企业级数据缓存系统,它为分布式应用程序提供了数据管理、缓存以及服务网格的功能。本文将深入探讨Coherence的核心特性,包括其QuickStart和编程模型...

    7.Coherence企业级缓存(六) JMX 管理和监控.pdf

    - [Coherence企业级缓存(一)特点](http://raymondhekk.javaeye.com/blog/260414) - [Coherence企业级缓存(二)QuickStart和编程](http://raymondhekk.javaeye.com/blog/260415) - [Coherence企业级缓存(三)四种缓存...

    1.Coherence企业级缓存(一) 特点.pdf

    ### Coherence企业级缓存详解 #### 一、Coherence概览 Coherence是由Oracle公司提供的企业级分布式集群缓存框架,旨在为大型系统提供高效、可靠的数据管理和缓存服务。其核心特性包括自管理、自恢复以及高可用性,...

    Coherence企业级缓存(三) 四种缓存类型.pdf

    ### Coherence企业级缓存(三) 四种缓存类型 #### 1. Coherence简介 Coherence是一款由Oracle提供的高性能、可扩展的企业级内存数据网格解决方案。它能够为分布式应用提供一致性和高可用性服务,适用于各种复杂的...

    Coherence企业级缓存(二) QuickStart和编程.pdf

    ### Coherence企业级缓存(二):QuickStart与编程详解 #### 1. Coherence简介及重要性 Coherence是一款高性能、可扩展的企业级内存数据网格解决方案,由Oracle公司提供。它允许开发者构建分布式、容错且具有高度可...

    Coherence企业级缓存(五)与Hibernate集成(1).pdf

    根据提供的文档信息,以下是对Coherence企业级缓存与Hibernate集成的相关知识点的详细解析: ### Coherence企业级缓存简介 Oracle Coherence 是一个高性能、可扩展的企业级分布式内存数据网格解决方案。它允许应用...

    Coherence企业级缓存(五)与Hibernate集成(2) .pdf

    根据提供的文档信息,本文将详细解析Coherence企业级缓存与Hibernate集成的相关知识点,包括配置方法、集成步骤以及实现机制。 ### Coherence企业级缓存简介 Coherence是一款由Oracle公司开发的企业级分布式内存...

    8.Coherence企业级缓存(七) 性能调优.pdf

    综上所述,Coherence企业级缓存的性能调优是一个综合性的过程,涉及从基础硬件配置、操作系统参数调整到应用层面的深度优化。通过细致规划与持续监测,结合具体的业务需求和技术挑战,Coherence能够充分发挥其作为高...

    Coherence企业级缓存(四) 数据管理模式.pdf

    ### Coherence企业级缓存(四) 数据管理模式详解 #### 一、引言 在分布式系统和高性能应用中,缓存技术是提升性能的关键手段之一。Oracle Coherence是一款高性能、可伸缩的企业级数据网格解决方案,它支持多种缓存...

    oracle缓存工具coherence-java-3.7.1+中文资料

    Oracle Coherence是一个企业级的分布式集群缓存框架。具有自管理,自恢复,高可用性,高扩展性等优良特点,在电信BOSS等项目中有很大的应用价值。 压缩包里面有最新版Oracle Coherence 3.7.1,加上中文资料。

    weblogic 集群与Coherence 集群之路

    在IT行业中,WebLogic Server是Oracle公司提供的一个企业级Java EE应用服务器,它为企业应用程序提供了全面的开发、部署和管理支持。而Coherence是Oracle的一个分布式数据网格解决方案,主要用于缓存和数据共享,以...

    coherence.jar,coherence-work.jar,tangosol.jar

    这三个JAR文件共同构成了Coherence的核心组件,它们之间的协同工作使得开发人员能够构建出具备高效缓存、分布式计算和高可用性特点的企业级应用。在实际开发中,将这些库引入项目,开发者可以利用Coherence提供的API...

    Coherence入门.(pdf)-中文

    Coherence作为Oracle产品系列的一员,可以与其他Oracle产品无缝集成,形成一个完整的企业级解决方案。例如,它可以与Oracle WebCache协同工作,缓存动态和静态HTML内容;与TimesTen结合使用,缓存关系型数据库的数据...

    Oracle Coherence_Getting Started

    通过上述内容,我们可以看到Oracle Coherence不仅是一款强大的数据网格平台,更是企业级应用架构中的重要组成部分。无论是从技术原理还是实际应用场景来看,Coherence都展现出了其独特的价值和优势。

    Oracle Coherence

    ### Oracle Coherence 系统架构详解 #### 一、引言 随着Web应用对高性能、高可用性的需求不断增加,如何...通过利用Coherence,开发人员可以构建出更加稳定可靠、响应迅速的应用程序,满足当今企业级应用的复杂需求。

    Oracle Coherence(Oracle 数据网格java包)coherence-java-3.7.1

    Oracle Coherence是一个企业级的分布式集群缓存框架。具有自管理,自恢复,高可用性,高扩展性等优良特点,在电信BOSS等项目中有很大的应用价值。本文对它的特点,架构,基本使用方法,JMX管理,调优等进行简要但...

    Packtpub.Oracle.Coherence.3.5.Mar.2010.rar

    Oracle Coherence是一款企业级的分布式数据管理平台,主要用于提供高可用性、高性能的数据缓存和处理能力,尤其在大数据和分布式计算环境中表现出色。 该教程可能涵盖了以下几个核心知识点: 1. **Oracle ...

    Hibernate缓存深入详解.ppt

    配置二级缓存时,可以选择不同的提供商,如Ehcache、Oracle Coherence等。 3-1 查询缓存 除了对象缓存,Hibernate还支持查询缓存。查询结果会被缓存,下次执行相同的查询时,如果数据未改变,可以直接从缓存获取...

Global site tag (gtag.js) - Google Analytics