Oracle Coherence

分布式缓存


Oracle Coherence 使用复制、分发、分区和失效相结合的方式来可靠地维护集群中的数据。通过这种方式,无论进行处理的是哪台服务器,它从 Oracle Coherence 获得的数据都是相同的。换言之,Oracle Coherence 提供了一个 分布式共享内存 实现,也称作 单一系统映像 (SSI) 和一致的集群缓存。

任何时候,当应用程序能够从应用程序层获得所需数据时,它都会消除作为单点瓶颈 (SPOB) 的数据源。

为解决复制的缓存服务在内存和通信瓶颈方面的潜在伸缩性限制,Oracle Coherence 提供了一个分布式缓存服务。很多产品都使用分布式缓存这个术语来描述它们的功能,因此有必要在 Oracle Coherence 中澄清该术语的确切涵义。Oracle Coherence 将分布式缓存定义为一个数据集合,它分布(或分区)于任意数目的集群节点上。这样,集群中的一个具体节点负责缓存中的一段数据,而且责任也分布于集群节点上(或各个节点的负载均衡)。

分布式缓存有几个关键点要考虑:
  • 分区:分布式缓存中的数据分散在所有服务器上,分布方式是不会有两台服务器会对同一段缓存数据负责。这意味着缓存大小和与缓存管理相关的处理能力可以随着集群的大小线性增长。这还意味着针对缓存中数据的操作可以通过“单跳”来完成,换言之,至多仅涉及另外一台服务器。
  • 负载均衡:由于数据均匀分布在各台服务器上,因此管理数据的责任也就自动在集群内实现了负载均衡。
  • 位置透明性:虽然数据散布于集群内各个节点上,但访问数据所用的 API 完全相同,而且每个 API 方法提供的行为也相同。这称为位置透明性,它意味着开发人员无须根据缓存的拓扑进行编码,这是因为 API 及其行为对于本地 JCache、复制缓存或分布式缓存都是相同的。
  • 故障切换:所有 Oracle Coherence 服务都提供故障切换和故障恢复功能而不会导致数据丢失,这些服务包括分布式缓存服务。分布式缓存服务允许配置备份的数目。只要备份的数目为 1 或更高,任何集群节点在发生故障时都不会丢失数据。

技术信息
 Coherence 知识库:Coherence 3.3 用户指南 (wiki)
Coherence 知识库是适用于开发人员的资源,提供联机文档、版本说明和 Coherence 用户指南。
 Oracle Coherence 论坛
 JavaDoc API:Coherence 3.3 JavaDoc
 Oracle Coherence