1.5. State Transfer
State transfer 是一个管理操作,可在站点之间同步数据。
例如,LON 脱机,NYC 开始处理客户端请求。当您重新上线时, LON 中的 Data Grid 集群与 NYC 中的集群没有相同的数据。
为确保数据在 LON 和 NYC 之间保持一致,您可以将状态从 NYC 推送到 LON。
- state transfer 是双向的。例如,您可以将状态从 NYC 推送到 LON 或从 LON 推送到 NYC。
- 将状态推送到离线站点会使它们重新上线。
状态传输只覆盖两个站点、原始站点和接收站点中存在的数据。Data Grid 不会删除数据。
例如,当 LON 和 NYC 离线时,"k2"存在于 LON 和 NYC 上。当您使 LON 重新上线时,该位置上仍然存在"k2"。如果您将状态从 NYC 推送到 LON,则传输不会影响 LON 上的"k2"。
提示为确保缓存的内容在状态传输后相同,请在推送状态前从接收站点的缓存中删除所有数据。使用
clear ()方法。状态传输不会覆盖启动推送后发生的数据的更新。
例如,LON 和 NYC 中存在 "k1,v1"。LON 脱机,因此您将状态从 NYC 推送到 LON,这会使 LON 重新上线。在状态传输完成前,客户端将"k1,v2"放在 LON 上。
在这种情况下,来自 NYC 的状态传输不会覆盖 "k1,v2",因为启动推送后该修改发生。
参考
- org.infinispan.Cache.clear()
- 提示
从 CLI 运行
help clearcache以获取命令详情和示例。 - 使用 REST API 清除缓存