3.2. 复制的缓存
写入任何节点上的复制缓存的条目将复制到集群中的所有其他节点,并可以从任何节点本地检索。复制模式提供了一种快速轻松地在集群中共享状态的方法,但复制只在小集群(在 10 个节点下)中表现良好,因为使用集群大小线性扩展所需的消息数量。Data Grid 可以配置为使用 UDP 多播,这会将此问题降低到某种程度。
每个键都有一个主所有者,用于序列化数据容器更新以提供一致性。要了解有关如何分配主要所有者的更多信息,请阅读 主要所有者部分。
图 3.2. 复制模式
复制模式可以是同步的,也可以是异步模式。
-
同步复制会阻止调用者(例如,在
cache.put (key, value)
上),直到修改成功复制到集群中的所有节点。 - 异步复制在后台执行复制,写入操作会立即返回。不建议异步复制,因为远程节点上发生的通信错误或错误不会报告给调用者。
如果启用了事务,则不会通过主所有者复制写入操作。
- 使用 pessimistic 锁定时,每个写入都会触发锁定消息,该消息广播到所有节点。在事务提交期间,源器会广播一阶段准备消息和解锁消息(可选)。一个阶段准备,或解锁消息是 fire-and-forget。
- 使用最佳锁定时,原始器会广播准备消息、提交消息和解锁消息(可选)。同样,一阶段准备或解锁消息是 fire-and-forget。