一.Coherence是什么
Oracle官方网站的描述是:Coherence 在可靠的、高度可伸缩的对等集群协议之上提供了复制的、分布式的(分区的)数据管理和缓存服务。Coherence 不存在单点故障,当某台服务器无法操作或从网络断开时,它可以自动且透明地进行故障切换并重新分布它的集群化数据管理服务。当新服务器加入或故障服务器重 启时,它会自动加入集群,Coherence 会将服务切回到该服务器,透明地重新分布集群负载。Coherence 包含网络级的容错特性和透明的软重启功能,以支持服务器自我修复。
Oracle Coherence 是一个适用于集群化应用程序和应用服务器的内存中分布式数据网格解决方案。通过使用 Oracle Coherence 快速、可靠地访问经常使用的数据,组织能够以可预测的方式扩展任务关键应用程序。
Oracle Coherence使客户可以将数据推送到更靠近应用程序的地方,从而提高访问速度和资源利用率。
二.Coherence的特点
1.分布式集群缓存
Coherence是一个分布式的缓存方案,并且通过集群为应用提供强大的缓存后备支持。Coherence主要是内存缓存,即存储区域主要在内存当中。
与一般的分布式缓存方案如JBossCache, Memcache 等相同,分布式缓存的价值基于网络IO性能高于DB查询的磁盘IO性能这样一个特点。
Coherence所有的设计都是基于多个(可以是非常多)的JVM,很多Coherence的测试都是使用几十甚至上百个节点来进行的。
2.自管理
Coherence使用的网络协议是TCMP ,是对UDP,TCP/IP的组合使用。Coherence能将启动的实例节点(Node)自动组成为集群(Cluster)。在一个局域网环境中,通过 多播(Multicast)机制,第1个启动的Node能自动发现后启动的Node,第1,2个Node同样能发现之后启动的其他Node,依次类推,自 动组成集群; 并且也能自动检测到死亡节点。集群各节点间通过单播(Unicast)机制进行数据复制,同步及发送通知消息。
Coherence集群以统一的逻辑试图对外提供缓存的读写接口,看起来使用Coherence Client就像在使用一个缓存一样。
3.自动容错和恢复
基于自管理的特点,一个Node挂掉后,集群能自动监测到,并做好死亡节点的数据恢复机制,客户端依然能正确的读出在死亡节点上存储的数据,容错和恢复对客户端来说是透明的。
4.分区缓存(Partitioned Cache)
这是Coherence与众不同的地方。一般集群如:JBossCache, Websphere 集群等,每个Node都有数据的完整拷贝,Node间通过复制来实现数据同步和一致性,一般来说采用全复制模式,即一份数据在各节点上都有一份拷贝。这种 模式下,节点要存储了较多的数据,同步复制时比较消耗网络带宽。
而Coherence的分区缓存只将一个Node上的数据在另一节点上做1个备份,有效降低复制的消耗好时间,并节省内存总需求,只需复制模式的1/N (N为缓存节点个数)。
5.线性扩展
假如你的Coherence集群已经有4个Node,当系统数据量过大引起Cache容量满员,导致缓存性能下降时,可以通过启动新的Node来扩容,改善集群的性能。
这一点也是源自分区缓存技术,集群有N个Node,每个Node只存放1/N的数据,这种设计让Coherence能够处理非常多的数据,只需要通过增加节点的数量,就可以处理更多的数据。
当两台机器,4个存储Node不够用时,通过新增机器,新增Node实例即可自动加入集群,提升Coherence缓存性能。
线性扩展更重要体现在性能上,Coherence集群通过增加机器,增加Node实例使得交易耗时大幅降低,而且随着集群规模呈线性下降。
6.易用性
虽然上述特点看起来似乎很复杂,但那都是Coherence自己内部的事儿。对于客户端来说,与最简单的Map 操作一样,仅仅是 put(key,value), get(key) 等。
NamedCache cache = CacheFactory.getCache("dist-cache"); cache.put(key, value); Object value = cache.get(key);
正是基于以上技术和特点,Coherence成为一个高可用性,高扩展性,高性能但使用非常简单的网格型(Data Grid)分布式缓存框架。
相关推荐
### Oracle Coherence:起步与关键技术解析 #### 一、Oracle Coherence简介 Oracle Coherence是一款高性能、可扩展的分布式数据网格平台,它主要用于在多个应用服务器之间共享数据,并提供一致性和高可用性保障。...
### Oracle Coherence中文开发文档知识点解析 #### 一、引言 Oracle Coherence是一款高性能、分布式内存数据网格平台,主要用于解决大数据环境下对于实时数据处理的需求。该文档为Oracle Coherence的中文开发指南,...
Oracle Coherence是一个企业级的分布式集群缓存框架。具有自管理,自恢复,高可用性,高扩展性等优良特点,在电信BOSS等项目中有很大的应用价值。本文对它的特点,架构,基本使用方法,JMX管理,调优等进行简要但...
在这个教程中,Oracle Coherence 12c被详细地介绍和解释,这对于希望深入了解和应用Oracle Coherence的开发者来说是一份宝贵的资料。 根据教程内容,Oracle Coherence 12c具有以下特点: - 支持Java平台,并能够在...
Oracle Coherence 是一款由甲骨文公司开发的分布式数据网格解决方案,主要应用于企业级应用的高性能缓存和数据共享。在openfire集群中,Oracle Coherence扮演着关键角色,为集群提供高效的数据共享和一致性保证,...
Oracle Coherence 是一款由 Oracle 公司提供的分布式数据网格解决方案,它主要被用于提升应用程序的性能和可伸缩性。Coherence 提供了一个高度可配置的、基于内存的数据存储和缓存平台,允许应用程序在无需修改的...
通过上述介绍,我们不仅了解了Oracle Coherence的基本概念和原理,还对其核心特点和应用场景有了全面的认识。对于初学者来说,掌握这些基础知识是非常重要的第一步,可以帮助您更好地利用Oracle Coherence构建高效、...
### Oracle Coherence 系统架构详解 #### 一、引言 随着Web应用对高性能、高可用性的需求不断增加,如何优化应用服务器中的数据处理成为了一个关键问题。传统的做法是在应用服务器内部缓存数据,但这种方法容易导致...
Oracle Coherence是一个企业级的分布式集群缓存框架。具有自管理,自恢复,高可用性,高扩展性等优良特点,在电信BOSS等项目中有很大的应用价值。 压缩包里面有最新版Oracle Coherence 3.7.1,加上中文资料。
### Oracle Coherence 教程知识点详解 #### 一、Oracle Coherence 概述 - **定义**:Oracle Coherence 是一款高性能、可扩展且具备容错能力的企业级数据网格(Data Grid)解决方案。它能够为应用程序提供分布式内存...
### Oracle Coherence 开发者指南知识点解析 #### 一、Oracle Coherence 概览 - **定义**:Oracle Coherence 是一款高性能、可扩展的内存数据网格(In-Memory Data Grid, IMDG)解决方案,旨在解决分布式环境中大...
1. **Oracle Coherence简介**:介绍Oracle Coherence的基本概念,包括它的设计目标、功能特性以及在企业应用中的角色。这可能涉及到数据网格的概念,以及它如何解决传统数据库在大规模并发访问下的性能瓶颈问题。 2...
### Oracle Coherence使用经验 #### 环境与背景 - **操作系统**: Windows 平台 - **中间件**: WebLogic Server (WLS) 11g/12c Oracle Coherence 是一款高性能的分布式数据网格解决方案,主要用于提高应用程序的可...
【Oracle Coherence 3.6】是Oracle公司发布的一款最新的分布式内存数据网格产品,它在业界享有领先地位。此版本带来了重大改进,特别是引入了Coherence Quorum特性,这个功能允许更精细地控制网格和云环境的容量以及...
从给定的文件信息中,我们可以提炼出关于Oracle Coherence解决方案的关键知识点,这些知识点涵盖了其在高性能分布式内存网格中的应用,以及如何满足企业级应用程序的伸缩性和性能需求。 ### Oracle Coherence概述 ...
Oracle Coherence社区版内容介绍是一个可扩展的,容错的,云就绪的分布式平台,用于构建基于网格的应用程序并可靠地存储数据。 该产品已在关键金融交易系统,高性能电信产品和电子商务应用等众多行业中大规模用于...
标题中的"coherence.jar-coherence-work.jar-tangosol.jar-"揭示了这是一组与Oracle Coherence相关的Java库文件。Coherence是Oracle公司提供的一种分布式数据管理解决方案,它主要用于实现高性能的数据缓存、数据...