第 2 章 集群缓存
您可以在 Data Grid 集群上创建嵌入和远程缓存,以便在节点间复制数据。
2.1. 复制缓存
Data Grid 将缓存中的所有条目复制到集群中的所有节点。每个节点可以在本地执行读取操作。
复制的缓存提供了在集群间共享状态的简单方法,但适合小于 10 个节点的集群。由于复制请求数量与集群中的节点数量线性扩展,所以在大型集群中使用复制缓存会降低性能。但是,您可以使用 UDP 多播来复制请求来提高性能。
每个密钥都有一个主要所有者,用于对数据容器更新进行序列化以提供一致性。
图 2.1. 复制缓存
同步或异步复制
-
同步复制会拦截 caller (例如,在
cache.put (key, value)
上),直到修改成功复制到集群中的所有节点。 - 异步复制在后台执行复制,并立即返回写入操作。不建议使用异步复制,因为通信错误或远程节点上出现的错误不会报告给调用者。
Transactions
如果启用了事务,则不通过主所有者复制写操作。
由于具有保守的锁定,每个写入都会触发锁定信息,该消息被广播到所有节点。在事务提交过程中,originator 广播一个单阶段准备消息和解锁信息(可选)。单阶段准备或解锁信息为 fire-and-forget。
通过光驱锁定,原始器将广播准备消息、提交消息和解锁信息(可选)。同样,一次性准备或解锁信息是 fire-and-forget。