如何在Kubernetes环境实现跨AKS集群的Hazelcast 4.0嵌入式版本备份与恢复
AKS集群间嵌入式Hazelcast 4.0备份恢复实操方案
前置准备
- 确认两个AKS集群的网络连通性,需保证源集群Hazelcast实例Pod的5701端口可被目标集群访问,或提前配置专线/VPN打通集群Pod CIDR
- 备份前先暂停源集群所有写入Hazelcast的业务流量,避免备份过程中数据不一致
- 提前在目标AKS集群部署好同版本的嵌入式Hazelcast应用,配置的集群名称、分区数需和源集群完全一致
备份操作(源AKS集群侧)
方式一:Hot Restart持久化备份(推荐,适合大内存数据集)
- 先修改源Hazelcast嵌入式配置,开启Hot Restart功能,示例配置片段:
<hazelcast> <hot-restart-persistence enabled="true"> <base-dir>/data/hot-restart</base-dir> <validation-timeout-seconds>120</validation-timeout-seconds> <data-load-timeout-seconds>900</data-load-timeout-seconds> </hot-restart-persistence> </hazelcast>
- 给源集群Hazelcast Pod挂载持久化卷PV,重启实例触发全量持久化到磁盘
- 触发备份命令:
hz-cluster-admin -a <源集群服务地址> hot-restart force-start,等待所有分区同步完成后,将PV中的备份文件整体打包导出
方式二:MapDump工具导出(适合小数据集快速迁移)
- 下载适配4.0版本的Hazelcast MapDump工具,直接连接源集群的Hazelcast服务地址
- 执行导出命令:
mapdump --source <源集群地址> --output /backup/hz-map-backup.gz --include-all-maps,等待所有Map导出完成即可
恢复操作(目标AKS集群侧)
对应Hot Restart备份的恢复步骤
- 停止目标集群所有Hazelcast实例,清空原有Hot Restart目录
- 将源集群导出的备份文件完整上传到目标集群Hazelcast Pod挂载的PV对应目录下,保证目录权限和源集群一致
- 修改目标Hazelcast配置开启Hot Restart,启动所有实例,实例会自动加载磁盘中的备份数据,待集群状态变为
ACTIVE后验证数据完整性
对应MapDump备份的恢复步骤
- 保证目标集群Hazelcast服务正常运行,无业务写入
- 执行恢复命令:
mapdump --target <目标集群地址> --input /backup/hz-map-backup.gz --mode overwrite - 恢复完成后执行数据校验:随机抽取不同Map的Key查询值,和源集群备份前的数据做比对
嵌入式版本特殊注意事项
嵌入式Hazelcast和业务应用进程绑定,备份恢复过程中需要连带业务应用一起启停,不要单独启停Hazelcast线程,避免出现内存数据和持久化数据不一致的问题
- 迁移前务必做小规模测试,先拿单节点测试环境验证备份恢复流程无误后再操作生产环境
- 4.0版本存在Hot Restart的已知小缺陷,备份前建议先给所有Hazelcast实例打对应补丁,避免恢复过程中出现分区数据丢失
- 若迁移过程中出现数据不一致,可通过Hazelcast管理中心查看分区同步状态,手动触发分区重平衡即可
内容的提问来源于stack exchange,提问作者manoj kumar
相关产品推荐
相关产品推荐

