Coherence是Oracle为了建立一种高可靠和高扩展集群计算的一个关键部件。
典型的使用Coherence的架构图是: Coherence被放在应用服务器和数据库服务器之间,从而解决通常应用架构里的瓶颈(数据瓶颈)来提高整个应用架构的可扩展性。类似如下图:
分布式集群缓存
Coherence是一个分布式的缓存方案,并且通过集群为应用提供强大的缓存后备支持。Coherence主要是内存缓存,即存储区域主要在内存当中。
与一般的分布式缓存方案如JBossCache, Memcache 等相同,分布式缓存的价值基于网络IO性能高于DB查询的磁盘IO性能这样一个特点。
Coherence所有的设计都是基于多个(可以是非常多)的JVM,很多Coherence的测试都是使用几十甚至上百个节点来进行的。
Coherence集群是由Node构成的,每个Node既存储数据,又可以查询数据。
运行 bin/coherence.cmd 命令就能启动一个Node实例。
运行多次,就能启动多个实例,各Node能自动检测到网路内新启动的Node,并加入集群。
除了提升缓存的效能,它还可以在下面场景下使用:
1. Analytics:用于查询,从简单查询到复杂查询,比如用于查询金融交易系统的投资者持仓信息(非常密集的查询)。这种使用方式还可以使用多个节点的并发查询。
2. Transactions:在Coherence直接处理交易,可以在Coherence直接提交交易,从而得到极快的响应速度和高可扩展性。
3. Events:Coherence里可以使用事件驱动的架构,能够对事件做出实时的处理。比如在线游戏使用EDA架构处理“武器”,“装备”的买卖交易。
参考资料:
Coherence
http://baike.baidu.com/view/1615537.htm?fr=iciba
Java高伸缩应用最佳实践 - Coherence
http://www.oracle.com/technetwork/cn/community/developer-day/java-sca-practices-app-coherence-435319-zhs.pdf
Coherence企业级缓存(一) 特点
http://raymondhekk.iteye.com/blog/256831
Coherence Step by Step 第一篇 入门(一) 介绍(翻译)
ORACLE COHERENCE 12.1.2
http://www.oracle.com/us/products/middleware/coherence-12-1-2-datasheet-final-1969588.pdf?ssSourceSiteId=ocomcn
Oracle Coherence内存数据网格
http://www.oracle.com/cn/products/middleware/cloud-app-foundation/coherence/overview/index.html
结合使用 Oracle Coherence 和 Spring Batch 进行高性能数据处理
http://www.oracle.com/technetwork/cn/articles/cloudcomp/coherence-springbatch-1522611-zhs.html