第 2 章 集群缓存
您可以在 Data Grid 集群中创建在跨节点间复制数据的嵌入式和远程缓存。
2.1. 复制的缓存
Data Grid 将缓存中的所有条目复制到集群中的所有节点。每个节点都可以在本地执行读取操作。
复制缓存提供了一种快速轻松地在集群中共享状态的方法,但适用于小于 10 个节点的集群。由于复制请求数量与集群中的节点数量线性扩展,所以使用带有更大集群的复制缓存会降低性能。但是,您可以将 UDP 多播用于复制请求来提高性能。
每个密钥都有一个主所有者,用于序列化数据容器更新,以提供一致性。
图 2.1. 复制缓存
同步或异步复制
-
同步复制会阻止调用者(例如,在
cache.put (key, value)
上),直到修改成功复制到集群中的所有节点。 - 异步复制在后台执行复制,写入操作会立即返回。不建议异步复制,因为远程节点上发生的通信错误或错误不会向调用者报告。
Transactions
如果启用了事务,则不会通过主所有者复制写入操作。
使用 pesimistic locking 时,每个写入都会触发锁定消息,该消息会广播到所有节点。在事务提交过程中,originator 广播一阶段准备消息和解锁消息(可选)。one-phase 准备或解锁信息都是 fire-and-forget。
使用最佳锁定时,源器广播准备消息、提交消息和解锁消息(可选)。同样,1phase 准备或解锁信息都是 fire-and-forget。