2.13. 集群备份和恢复
执行跨站点复制的数据网格集群通常以整体 CPU 和内存分配为"symmetrical"。当您考虑跨站点复制大小时,主要问题是集群之间的状态传输操作的影响。
例如,NYC 中的 Data Grid 集群进入离线,客户端切换到 LON 中的 Data Grid 集群。当 NYC 中的集群恢复在线时,状态转移会从 LON 变为 NYC。此操作可防止客户端的过时读取,但对接收状态传输的集群有性能损失。
您可以在集群中分配状态传输操作所需的增加。但是,状态传输操作的性能影响完全取决于环境和因素,如数据集的类型和大小。
Active/Active 部署的冲突解析
当多个站点处理客户端请求时,Data Grid 会检测与并发写入操作冲突,称为 Active/Active 站点配置。
以下示例演示了并发写入在 LON 和 NYC 数据中心中运行的 Data Grid 集群冲突条目:
在 Active/Active 站点配置中,您不应该使用同步的备份策略,因为并发写入会导致死锁和丢失数据。借助异步备份策略(strategy=async),Data Grid 为您提供了处理并发写入的选择跨站点合并策略。
在性能方面,Data Grid 用来解决冲突的合并策略需要额外的计算,但通常不会产生显著损失。例如,默认的跨站点合并策略使用字典比较或"字符串比较",这只需要几个纳秒才能完成。
Data Grid 还为跨站点合并策略提供 XSiteEntryMergePolicy SPI。如果您确实配置 Data Grid 以解决与自定义实现冲突的冲突,您应该始终监控性能以量化任何负面影响。
XSiteEntryMergePolicy SPI 调用非阻塞线程池中的所有合并策略。如果您实施阻止自定义合并策略,它可能会耗尽线程池。
您应该将复杂或阻止策略委派给不同的线程,您的实施应返回 CompletionStage,以便在其他线程中完成合并策略。