Oracle Coherence分布式数据缓存解决方案
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
<Insert Picture Here>
应用架构的变革
• 集群
Oracle RAC(Real Application Cluster) Cluster File System/ASM Oracle Clusterware Weblogic 集群 负载均衡 越来越不能满足……
...
数据操作一致性和交易 缓存拓扑模式 缓存事件 缓存管理 集成方案 应用场景和案例 总结
Hot Cache可将变化的数据推送到Coherence中
3rd Party Application Coherence Application Coherence Application Coherence Application
<Insert Picture Here>
Coherence支持事件处理
通过Trigger和Listener接口 实现事件分布式处理
事件处理流程
议程
• • • • • • • • • Oracle Coherence和分布式数据网格 缓存和DB的交互关系 数据操作一致性和交易 缓存拓扑模式 缓存事件 缓存管理 集成方案 应用场景和案例 总结
• 可配置的过期策略
• LFU, LRU, Hybrid (LFU+LRU), Timebased, Never, Pluggable
就近缓存(Near Cache)
• 前端+后端缓存方案的组合 • 提供L1、L2缓存 (缓存的缓存) • 目标
• 在线动态组建分区拓扑 • 本地缓存(L1)构建在partition缓存基础 上(L2) • 获得可扩展和性能的最佳方案
高频业务
数据库
应用 服务器
D
D
存储
X
D
多页查询
D D D
数据库
同一个数 据项被反 复操作 数据库节 点之间的 锁
复合型页面
性能问题解决途径
按照业务 类型分离 提高并行 处理能力 数据前提
应用
高频业务
服务器
D
数据库
D D D
存 储
多页查询
D 应用 D
服务器
D
数据库
减少重复 访问
减少数据 库级的锁
复合型页面
• 目的:
• 取代私有的缓存机制 • 兼容并与其它Coherence Schemes协作
• 可配置的过期策略:
• LFU, LRU, Hybrid (LFU+LRU), Timebased, Never, Pluggable
复制缓存(Replicated Cache)
• 集群缓存的强力实现
• 在所有成员复制并管理所有数据 • 为所有数据提供零延迟的本地访问 • 复制和同步过程对开发者透明
可将Coherence的对象操作 加入到JTA分布式事物中进行管理
议程
• • • • • • • • • Oracle Coherence和分布式数据网格 数据缓存和DB的交互关系 数据操作一致性和交易 缓存拓扑模式 缓存事件 缓存管理 集成方案 应用场景和案例 总结
<Insert Picture Here>
分布式环境下,应用集群的节点之间或者多个应用之间,数据对象缓存 与共享相关的一系列问题。(Scalability,Reliability,Performance)
• 应用数据高速缓存
• 网格内的数据共享
• 网格内数据操作的一致性 • 数据网格的自动伸缩 • 网格数据的持续可用 • 网格数据的持久化
缓存
<Insert Picture Here>
确保集群范围内的数据操作一致性
• Coherence通过以下机制确保集群范围内对数 据更新的一致性:
• 锁机制 • 性能较低
• 队列机制 • 实现Entry Processors接口 • 对同一Key的操作放在队列中执行,避免锁。 • 执行效率更高
确保集群范围内的数据操作交易完整性
Coherence
通过JPA 实现数 据映射 延时
只更新 变化的 数据 不需要 轮训更 新数据
Read / Write
GoldenGate Hot Cache
Database
Read / Write
GoldenGate
极低
议程
• • • • • • • • • Oracle Coherence和分布式数据网格 缓存和DB的交互关系 数据操作一致性和交易 缓存拓扑模式 缓存事件 缓存管理 集成方案 应用场景和案例 总结
Oracle Coherence:数据持久化模式
• 旁路缓存 – 由开发人员管理缓存
• 在读取数据源前检查缓存 • 在读取数据源后放入缓存 • 在更新数据源后更新缓存
• 直读/直写 (Read Through/Write Through)
• 所有数据读取/写入操作都通过缓存 • 缓存内没有数据时自动从数据源装载 • 更新缓存并同步方式写入数据源
分析
事务
事件
Coherence集群
——对等性
• 集群中的所有节点的角色都是一样的。
• 无需人工干预,数据会均匀分布在各个节点上。 • 具有云资源特性——即客户端不许关心数据存在
哪个节点上,客户端从任何一个节点就能透明地
逻辑访问任何数据。
Coherence集群
——可靠性
• 集群自动选择某一节点保存主数据。
Oracle Coherence 分布式内存数据网格是一个
专门为需要低响应时间、高吞吐量、可预见扩展 性、持续可用性和信息可靠性的多服务器间共享 的应用对象设计的数据管理系统。
应用层的数据网格解决方案 OR 分布式内存对象数据解决方案
10
Coherence的前世今生
Coherence的核心功能特性
<Insert Picture Here>
Coherence运行监控管理1
• 通过JMX MBean监控管理Coherence • 监视Coherence的实例、内存、对象、事件等
Coherence运行监控管理2
• 通过Oracle Enterprise Manager的coherence管理包监控管理Coherence
弹性会话, 缓存和数据网格作为独立的架构层次
WebLogic Server Cluster
WebLogic Server WLS WLS Coherence Coherence Coherence
使用Coherence的WebLogic Server
In Memory Data Grid
Coherence Coherence Coherence Coherence Coherence
议程
• • • • • • • • • Oracle Coherence和分布式数据网格 缓存和DB的交互关系 数据操作一致性和交易 缓存拓扑模式 缓存事件 缓存管理 集成方案 应用场景和案例 总结
<Insert Picture Here>
WebLogic with Coherence = ActiveCache
WSRP Portlet 3 Producer
WSRP Portlet 2 Producer
Portlet 3
Portlet 4
WSRP Portlet 4 Producer
In Memory Coherence Data Grid for WSRP Producer/Consumer Session Sharing
• 由于采用分布式并 行计算架构,因此 只要有足够的处理 器,处理能力就可 线性增长。
议程
• Oracle Coherence和分布式数据网格 • 缓存和DB的交互关系
• 数据持久化 • Hot Cache
<Insert Picture Here>
• • • • • • •
数据操作一致性和交易 缓存拓扑模式 缓存事件 缓存管理 集成方案 应用场景和案例 总结
主节点
P
Process Flow / Orchestration
备份节点
B
门户Portlet Session共享
WSRP Producer Server
Web Center
WSRP Producer Server
WSRP Portlet 1 Producer Portlet 1 Portlet 2
• 主数据会分布式地备份到其它节点。
• 每个节点都和其他节点校验节点的健康性 • 当一个节点不正常的时候,其他节点会进行状
态诊断
• 非健康节点会被集群隔离 • 剩下的节点会重新分布非健康节点主数据X来自Coherence集群
——分布式并行计算
基于数据查询和数据操作处理可在 分散到Coherence集群的各个缓存 节点上并行执行。
• 方法
• 配置“前端”和“后端”拓扑
• 可配置的过期策略
• LFU, LRU, Hybrid (LFU+LRU), Timebased, Never, Pluggable
不同缓存拓扑的特性对比
议程
• • • • • • • • • Oracle Coherence和分布式数据网格 缓存和DB的交互关系 数据操作一致性和交易 缓存拓扑模式 缓存事件 缓存管理 集成方案 应用场景和案例 总结
Coherence缓存的拓扑类型
本地缓存 (Local Cache)
复制缓存 (Replicated Cache)
分布式缓存 (Partitioned Cache)
就近缓存 (Near Cache)
本地缓存(Local Cache)
• 非集群本地缓存
• 在应用自身的堆内存中保持POJO对象的 引用
现实世界让数据供不应求
不断扩大的 用户领域
来自互联设备与共享服务 的数据呈爆炸式增长
Web 与应 用服务器
数据处理
用户希望获得可用的系统 、即时的结果
数据需求
停机/缓慢 = 失去客户、损 失收入
共享服务
数据供应
数据库
应用系统潜在的处理瓶颈和热点
各种不同 类型业务 相互影响
复杂请求无 法有效地并 行处理 存储的带宽 即使很大, 但是到每个 数据库节点 的带宽依然 有限 数据的分布情 况对有效带宽 影响很大
服务总线缓存 - Service Result Cache
扩展的应用基础架构
Service 提供者
Legacy 如果结果不在缓存,则调用 服务和缓存结果
Oracle Service Bus
Side Cache模式
Service 使用者
检查cache
Coherence Data Grid
取 / 存 (Cachekey) OSB Result Cache 服务数据
• 目的:
• 为提供极限读性能设计
• 可配置的过期策略
• LFU, LRU, Hybrid (LFU+LRU), Time-based, Never, Pluggable
分区式缓存 (Partitioned Cache)
• 集群的缓存
• 透明的分区,分布存储,在所有成员间备 份数据
• 目的
• 为提供极限扩展性设计
<Insert Picture Here>
Oracle Coherence
分布式数据缓存解决方案
刘晓宇 甲骨文(中国)软件系统有限公司
议程
• • • • • • • • • Oracle Coherence和分布式数据网格 缓存和DB的交互关系 数据操作一致性和交易 缓存拓扑模式 缓存事件 缓存管理 集成方案 应用场景和案例 总结
JVM
JVM
Cache
Cache
Cachestore
JPA
Cachestore
JPA
内存Coherence集成
Store Load
RAC
议程
• Oracle Coherence和分布式数据网格 • 缓存和DB的交互关系
• 持久化 • Hot Cache
<Insert Picture Here>
• • • • • • •
• 后写入(Write Behind)
• 所有数据写入操作都通过缓存 • 更新缓存并异步方式写入数据源
• 定时刷新(Refresh-Ahead)
• 为缓存定义过期时间和提前加载时间 • 在过期前访问缓存,采用异步更新加载 • 在过期后访问缓存,采用同步更新加载
实现数据持久化
• 支持TopLink, Hibernate, JDO等
并行执行提高了硬件资源利用率、 有效缩短了数据处理所消耗时间。
Coherence的并行处理能力可以无 限制地线性扩展。
Coherence集群
——扩展性
存储容量扩展
处理能力扩展
• 只要有足够的内存, 存储容量就可线性 增长。 • 如果内存有限,可 将数据可自动持久 化到SSD存储中, 从而提高存储容量。
应用架构的变革
内存数据网格解决方案
分布式、内存中数据管理
统一
– 整个集群内统一的数据
视图
扩展
– 扩大集群的规模即可在
性能
可靠性
不影响性能的情况下增 加容量
并行计算
– 分布式数据处理,造一
应用程序或 服务
个可扩展的平台,实现 高性能内存中分析
可伸缩性
可用性
Oracle Coherence是什么?
应用架构的变革
• 集群
Oracle RAC(Real Application Cluster) Cluster File System/ASM Oracle Clusterware Weblogic 集群 负载均衡 越来越不能满足……
...
数据操作一致性和交易 缓存拓扑模式 缓存事件 缓存管理 集成方案 应用场景和案例 总结
Hot Cache可将变化的数据推送到Coherence中
3rd Party Application Coherence Application Coherence Application Coherence Application
<Insert Picture Here>
Coherence支持事件处理
通过Trigger和Listener接口 实现事件分布式处理
事件处理流程
议程
• • • • • • • • • Oracle Coherence和分布式数据网格 缓存和DB的交互关系 数据操作一致性和交易 缓存拓扑模式 缓存事件 缓存管理 集成方案 应用场景和案例 总结
• 可配置的过期策略
• LFU, LRU, Hybrid (LFU+LRU), Timebased, Never, Pluggable
就近缓存(Near Cache)
• 前端+后端缓存方案的组合 • 提供L1、L2缓存 (缓存的缓存) • 目标
• 在线动态组建分区拓扑 • 本地缓存(L1)构建在partition缓存基础 上(L2) • 获得可扩展和性能的最佳方案
高频业务
数据库
应用 服务器
D
D
存储
X
D
多页查询
D D D
数据库
同一个数 据项被反 复操作 数据库节 点之间的 锁
复合型页面
性能问题解决途径
按照业务 类型分离 提高并行 处理能力 数据前提
应用
高频业务
服务器
D
数据库
D D D
存 储
多页查询
D 应用 D
服务器
D
数据库
减少重复 访问
减少数据 库级的锁
复合型页面
• 目的:
• 取代私有的缓存机制 • 兼容并与其它Coherence Schemes协作
• 可配置的过期策略:
• LFU, LRU, Hybrid (LFU+LRU), Timebased, Never, Pluggable
复制缓存(Replicated Cache)
• 集群缓存的强力实现
• 在所有成员复制并管理所有数据 • 为所有数据提供零延迟的本地访问 • 复制和同步过程对开发者透明
可将Coherence的对象操作 加入到JTA分布式事物中进行管理
议程
• • • • • • • • • Oracle Coherence和分布式数据网格 数据缓存和DB的交互关系 数据操作一致性和交易 缓存拓扑模式 缓存事件 缓存管理 集成方案 应用场景和案例 总结
<Insert Picture Here>
分布式环境下,应用集群的节点之间或者多个应用之间,数据对象缓存 与共享相关的一系列问题。(Scalability,Reliability,Performance)
• 应用数据高速缓存
• 网格内的数据共享
• 网格内数据操作的一致性 • 数据网格的自动伸缩 • 网格数据的持续可用 • 网格数据的持久化
缓存
<Insert Picture Here>
确保集群范围内的数据操作一致性
• Coherence通过以下机制确保集群范围内对数 据更新的一致性:
• 锁机制 • 性能较低
• 队列机制 • 实现Entry Processors接口 • 对同一Key的操作放在队列中执行,避免锁。 • 执行效率更高
确保集群范围内的数据操作交易完整性
Coherence
通过JPA 实现数 据映射 延时
只更新 变化的 数据 不需要 轮训更 新数据
Read / Write
GoldenGate Hot Cache
Database
Read / Write
GoldenGate
极低
议程
• • • • • • • • • Oracle Coherence和分布式数据网格 缓存和DB的交互关系 数据操作一致性和交易 缓存拓扑模式 缓存事件 缓存管理 集成方案 应用场景和案例 总结
Oracle Coherence:数据持久化模式
• 旁路缓存 – 由开发人员管理缓存
• 在读取数据源前检查缓存 • 在读取数据源后放入缓存 • 在更新数据源后更新缓存
• 直读/直写 (Read Through/Write Through)
• 所有数据读取/写入操作都通过缓存 • 缓存内没有数据时自动从数据源装载 • 更新缓存并同步方式写入数据源
分析
事务
事件
Coherence集群
——对等性
• 集群中的所有节点的角色都是一样的。
• 无需人工干预,数据会均匀分布在各个节点上。 • 具有云资源特性——即客户端不许关心数据存在
哪个节点上,客户端从任何一个节点就能透明地
逻辑访问任何数据。
Coherence集群
——可靠性
• 集群自动选择某一节点保存主数据。
Oracle Coherence 分布式内存数据网格是一个
专门为需要低响应时间、高吞吐量、可预见扩展 性、持续可用性和信息可靠性的多服务器间共享 的应用对象设计的数据管理系统。
应用层的数据网格解决方案 OR 分布式内存对象数据解决方案
10
Coherence的前世今生
Coherence的核心功能特性
<Insert Picture Here>
Coherence运行监控管理1
• 通过JMX MBean监控管理Coherence • 监视Coherence的实例、内存、对象、事件等
Coherence运行监控管理2
• 通过Oracle Enterprise Manager的coherence管理包监控管理Coherence
弹性会话, 缓存和数据网格作为独立的架构层次
WebLogic Server Cluster
WebLogic Server WLS WLS Coherence Coherence Coherence
使用Coherence的WebLogic Server
In Memory Data Grid
Coherence Coherence Coherence Coherence Coherence
议程
• • • • • • • • • Oracle Coherence和分布式数据网格 缓存和DB的交互关系 数据操作一致性和交易 缓存拓扑模式 缓存事件 缓存管理 集成方案 应用场景和案例 总结
<Insert Picture Here>
WebLogic with Coherence = ActiveCache
WSRP Portlet 3 Producer
WSRP Portlet 2 Producer
Portlet 3
Portlet 4
WSRP Portlet 4 Producer
In Memory Coherence Data Grid for WSRP Producer/Consumer Session Sharing
• 由于采用分布式并 行计算架构,因此 只要有足够的处理 器,处理能力就可 线性增长。
议程
• Oracle Coherence和分布式数据网格 • 缓存和DB的交互关系
• 数据持久化 • Hot Cache
<Insert Picture Here>
• • • • • • •
数据操作一致性和交易 缓存拓扑模式 缓存事件 缓存管理 集成方案 应用场景和案例 总结
主节点
P
Process Flow / Orchestration
备份节点
B
门户Portlet Session共享
WSRP Producer Server
Web Center
WSRP Producer Server
WSRP Portlet 1 Producer Portlet 1 Portlet 2
• 主数据会分布式地备份到其它节点。
• 每个节点都和其他节点校验节点的健康性 • 当一个节点不正常的时候,其他节点会进行状
态诊断
• 非健康节点会被集群隔离 • 剩下的节点会重新分布非健康节点主数据X来自Coherence集群
——分布式并行计算
基于数据查询和数据操作处理可在 分散到Coherence集群的各个缓存 节点上并行执行。
• 方法
• 配置“前端”和“后端”拓扑
• 可配置的过期策略
• LFU, LRU, Hybrid (LFU+LRU), Timebased, Never, Pluggable
不同缓存拓扑的特性对比
议程
• • • • • • • • • Oracle Coherence和分布式数据网格 缓存和DB的交互关系 数据操作一致性和交易 缓存拓扑模式 缓存事件 缓存管理 集成方案 应用场景和案例 总结
Coherence缓存的拓扑类型
本地缓存 (Local Cache)
复制缓存 (Replicated Cache)
分布式缓存 (Partitioned Cache)
就近缓存 (Near Cache)
本地缓存(Local Cache)
• 非集群本地缓存
• 在应用自身的堆内存中保持POJO对象的 引用
现实世界让数据供不应求
不断扩大的 用户领域
来自互联设备与共享服务 的数据呈爆炸式增长
Web 与应 用服务器
数据处理
用户希望获得可用的系统 、即时的结果
数据需求
停机/缓慢 = 失去客户、损 失收入
共享服务
数据供应
数据库
应用系统潜在的处理瓶颈和热点
各种不同 类型业务 相互影响
复杂请求无 法有效地并 行处理 存储的带宽 即使很大, 但是到每个 数据库节点 的带宽依然 有限 数据的分布情 况对有效带宽 影响很大
服务总线缓存 - Service Result Cache
扩展的应用基础架构
Service 提供者
Legacy 如果结果不在缓存,则调用 服务和缓存结果
Oracle Service Bus
Side Cache模式
Service 使用者
检查cache
Coherence Data Grid
取 / 存 (Cachekey) OSB Result Cache 服务数据
• 目的:
• 为提供极限读性能设计
• 可配置的过期策略
• LFU, LRU, Hybrid (LFU+LRU), Time-based, Never, Pluggable
分区式缓存 (Partitioned Cache)
• 集群的缓存
• 透明的分区,分布存储,在所有成员间备 份数据
• 目的
• 为提供极限扩展性设计
<Insert Picture Here>
Oracle Coherence
分布式数据缓存解决方案
刘晓宇 甲骨文(中国)软件系统有限公司
议程
• • • • • • • • • Oracle Coherence和分布式数据网格 缓存和DB的交互关系 数据操作一致性和交易 缓存拓扑模式 缓存事件 缓存管理 集成方案 应用场景和案例 总结
JVM
JVM
Cache
Cache
Cachestore
JPA
Cachestore
JPA
内存Coherence集成
Store Load
RAC
议程
• Oracle Coherence和分布式数据网格 • 缓存和DB的交互关系
• 持久化 • Hot Cache
<Insert Picture Here>
• • • • • • •
• 后写入(Write Behind)
• 所有数据写入操作都通过缓存 • 更新缓存并异步方式写入数据源
• 定时刷新(Refresh-Ahead)
• 为缓存定义过期时间和提前加载时间 • 在过期前访问缓存,采用异步更新加载 • 在过期后访问缓存,采用同步更新加载
实现数据持久化
• 支持TopLink, Hibernate, JDO等
并行执行提高了硬件资源利用率、 有效缩短了数据处理所消耗时间。
Coherence的并行处理能力可以无 限制地线性扩展。
Coherence集群
——扩展性
存储容量扩展
处理能力扩展
• 只要有足够的内存, 存储容量就可线性 增长。 • 如果内存有限,可 将数据可自动持久 化到SSD存储中, 从而提高存储容量。
应用架构的变革
内存数据网格解决方案
分布式、内存中数据管理
统一
– 整个集群内统一的数据
视图
扩展
– 扩大集群的规模即可在
性能
可靠性
不影响性能的情况下增 加容量
并行计算
– 分布式数据处理,造一
应用程序或 服务
个可扩展的平台,实现 高性能内存中分析
可伸缩性
可用性
Oracle Coherence是什么?