Coherence 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Coherence 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
Coherence 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
Coherence 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
Coherence 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 UPL
开发语言 Java 查看源码 »
操作系统 跨平台
软件类型 开源软件
开源组织 Oracle
地区 不详
投 递 者 不详
适用人群 未知
收录时间 2008-10-25

软件简介

Coherence是Oracle为了建立一种高可靠和高扩展集群计算的一个关键部件,集群指的 是多于一个应用服务器参与到运算里。Coherence的主要用途是共享一个应用的对象(主要是java对象,比如Web应用的一个会话java对象)和 数据(比如数据库数据,通过OR-MAPPING后成为Java对象)。

简单来说,就是当一个应用把它的对象或数据托管给Coherence管理的时候,该对象或数据就能够在整个集群环境(多个应用服务器节点)共享,应 用程序可以非常简单地调用get方法取得该对象,并且由于Coherence本身的冗余机制使得任何一个应用服务器节点的失败都不会影响到该对象的丢失。 其实如果不使用coherence,对于一个会话在多个应用服务器节点的共享一般是通过应用服务器本身的集群技术,而Coherence的创造者则认为基 于某种应用服务器技术的集群技术来共享会话变量的技术并不完整,而专门开发出Coherence这个产品(原来称为tangosol)并且最后被 Oracle收购,这个产品既有原来各种应用服务器集群所具有的各种技术特点,而且又增加了原来各种应用服务器集群技术所没有的各种特性。

要学习这个产品,需要记住并注意的一点是:Coherence所有的设计都是基于多个(可以是非常多)的JVM,很多Coherence的测试都是使用几十甚至上百个节点来进行的。

Coherence的一些技术特点
Coherence产品首先是被设计用于高扩展性:

所谓高扩展性就是当一个应用服务器能够处理2000笔交易,则10个应用服务器应该能够处理20000笔交易。

一般而言,整个应用架构的扩展性由架构里的最不能扩展的部位(称之为瓶颈)决定,这个瓶颈一般而言都是数据源的处理,Coherence针对这种理 解提供了应用层的数据共享缓冲,任何一个时候如果应用能够从这个数据缓冲里满足要求,则不会将请求发给数据源,从而极大地增强一般的瓶颈(数据)的扩展 性。
为了加强数据的写处理性能,Coherence还设计了延迟写的功能,就是应用的写会先缓存在Coherence的缓冲区,然后延迟写到数据 库里,为了减轻数据源的写压力,Coherence只把最近的更改写到数据源,比如一条数据被更改了多遍,则只有最后的更改会被提交到数据源。而且,如果 可能,多个SQL语句会被变成一个SQL语句批,一次提交给数据源,这样又极大地降低了对数据源的压力。

熟悉于数据库应用程序,参加过性能测试的有经验的朋友应该知道这非常多的场合,上述Coherence的特点刚好是对应了非常多的经常遇到的应用出现问题的场景。

一个典型的使用Coherence的架构图是:

即Coherence被放在应用服务器和数据库服务器之间,从而解决通常应用架构里的瓶颈(数据瓶颈)来提高整个应用架构的可扩展性。

Coherence的第二个非常重要的特地是支持数据的分区处理,就是如果有N个处理节点,则每个节点只管理1/N的数据,当一个节点失效时,该节 点的数据会在剩下的节点均分,每个节点将管理1/(N-1)的数据。同样的,当一个节点增加进来时,则每一个节点都会分配一部分数据给新的节点,则最终每 个节点只管理1/(N+1)的数据。大家知道,一般应用服务器的集群都有只能缓冲共享2G java对象的缺点,而Coherence这种设计让Coherence能够处理非常多的数据,只需要通过增加节点的数量,就可以处理更多的数据。

如果安装了Coherence,则应用服务器不需要配置专有的服务器集群技术,因为Coherence*web模块提供了可用于处理http会话信 息在Coherence集群内共享的功能,当一个节点需要读取HTTP会话信息而发现自己没有该会话信息的时候,它会把请求同时发给所有的节点 (multicast),而当一个节点需要写HTTP会话信息的同时,它也会把写请求发给所有的节点,所以2个节点的处理和100个节点的处理都是一样 的。

Coherence的使用场景
Coherence可以用于下面图示的一些技术场景:

1. Caching: 正如Coherence的别名是Data Grid,Coherence在这种场景主要是被用于缓存数据源的数据,当应用需要数据时,直接从Coherence里面取得而不是从后台数据源取得。比 如用于缓存用户的个人设置信息。这种使用方式可以极大降低对后台数据源的压力,并且甚至当后台数据源不可用的时候也不影响系统的可用性。
2. Analytics:用于查询,从简单查询到复杂查询,比如用于查询金融交易系统的投资者持仓信息(非常密集的查询)。这种使用方式还可以使用多个节点的并发查询。
3. Transactions:在Coherence直接处理交易,可以在Coherence直接提交交易,从而得到极快的响应速度和高可扩展性。
4. Events:Coherence里可以使用事件驱动的架构,能够对事件做出实时的处理。比如在线游戏使用EDA架构处理“武器”,“装备”的买卖交易。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
发表了资讯
2009/02/25 00:00

Coherence 0.6.2 发布

Release focus: Major feature enhancements Changes: MediaServer backends were added, which allow access to YouTube, miroGuide, Shoutcast TV, the SWR3 podcasts, and a German radio station. Adjustments were made to the Ampache backend to work with newer Ampache versions. Lots of compatibility enhancements were made for different devices. A "port" to the OpenEmbedded platform was made. Tar/GZ: http...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2013/10/16 10:02

Oracle Coherence Note

现在在熟悉Oracle Coherence缓存服务器的配置以及使用和运行机制,已经看过大半发现还是每天把看完的东西总结一下还能加强对这些东西的印象,所以还是记下来吧。 集群数据管理 Coherence的核心是集群数据管理,数据完整一致,single system image(SSI)(其实不知道这是什么意思),读写访问的可扩展性,快速透明的故障转移,故障恢复,线性的存储和处理的扩展,No Single-Points-of-Failure (SPOFs) (不知其意),集群范围内的...

0
0
发表了博客
2012/08/02 23:05

Coherence Step by Step 目录

到现在的公司快半年了,学习到的东西还是比较多的,争取吸收完各位老大的所有知识 哈!!!最近看到公司用的是Coherence缓存,所以想知道它是如何运行的,在google和百度找了好久,没多少资料,所以决定自己去翻译了。英语 不是很好,有些翻译的不对,错别字也比较多,谅解下吧,估计通过这次翻译,英文会进步不少。这几天翻译了一部分的Coherence,整理下,作为一个系 列吧,好不容易下定决心,打算把这些都翻译完。可能不是按...

2
0
发表了博客
2012/10/22 10:10

Coherence报socket错误

需要在/etc/sysctl.conf添加内核参数 net.core.rmem_max=2096304 net.core.wmem_max=2096304

0
0
发表了博客
2013/07/31 10:13

coherence API在线帮助网址

//coherence在线API http://docs.oracle.com/cd/E24290_01/coh.371/e22843/toc.htm //coherence在线文档 http://docs.oracle.com/cd/E15357_01/coh.360/e15723/toc.htm

0
1
发表了博客
2013/02/20 17:56

分布式网格缓存Coherence简介

外出旅行、冬季保暖得常备户外袜、速干袜、加厚袜子哦。 猛戳乐途驿站http://zhoupa1188.taobao.com抢购品牌男女式加厚户外袜子,coolmax、全棉、保暖、吸汗、速干、登山、徒步袜子。满10包邮 摘要:Oracle Coherence是一个企业级的分布式集群缓存框架。具有自管理,自恢复,高可用性,高扩展性等优良特点,在电信BOSS等项目中有很大的应用价值。本文对它的特点,架构,基本使用方法,JMX管理,调优等进行简要但快捷的介绍,并对...

0
1
发表了博客
2013/02/26 17:50

coherence学习1——CacheFactory

外出旅行、冬季保暖得常备户外袜、速干袜、加厚袜子哦。 猛戳乐途驿站http://zhoupa1188.taobao.com抢购品牌男女式加厚户外袜子,coolmax、全棉、保暖、吸汗、速干、登山、徒步袜子。满10包邮 CacheFactory.getCache("xxname"); 同一classLoader多次调用引用相同 CacheFactory.shutdown(); 关闭本地应用所有cache,后续掉任何cache.xxx都会抛已停止的异常 CacheFactory.releaseCache(cache) 释放引用,后面再调用cache.xxx会抛已...

0
0
发表了博客
2013/07/23 14:10

结合使用 Oracle Coherence 和 Spring Batch 进行高性能数据处理

http://www.oracle.com/technetwork/cn/articles/cloudcomp/coherence-springbatch-1522611-zhs.html

0
1
发表于数据库专区
2020/04/27 09:00

CVE-2020-2555:Oracle Coherence 反序列化RCE复现

点击上方蓝色字体关注我们,一起学安全! 本文作者:PingPig(团队正式成员) 本文字数:699 阅读时长:2~3min 声明:请勿用作违法用途,否则后果自负 0x01 简介 Oracle Coherence为Oracle融合中间件中的产品,在WebLogic 12c及以上版本中默认集成到WebLogic安装包中,T3是用于在WebLogic服务器和其他类型的Java程序之间传输信息的协议。 0x02 漏洞概述 该漏洞允许未经身份验证的攻击者通过构造T3网络协议请求进行攻击,成功利用...

0
0
发表于服务端专区
2015/10/13 22:55

Apache Ignite(一):简介以及和Coherence、Gemfire、Redis等的比较

1.Ignite简介 Apache Ignite 内存数据组织框架是一个高性能、集成化和分布式的内存计算和事务平台,用于大规模的数据集处理,比传统的基于磁盘或闪存的技术具有更高的性能,同时他还为应用和不同的数据源之间提供高性能、分布式内存中数据组织管理的功能。 2.Ignite历史 Ignite来源于尼基塔·伊万诺夫于2007年创建的GridGain系统公司开发的GridGain软件,尼基塔领导公司开发了领先的分布式内存片内数据处理技术-领先的Java内存片...

12
95
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
16 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部