You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hazelcast优雅关闭并重启主节点后全量数据丢失问题求助

问题:Hazelcast双节点集群重启原主节点后缓存被清空

环境信息

  • Java 17,Hazelcast 5.2.4
  • 双节点Spring Boot应用,配置完全一致,部署在虚拟机上
  • 集群状态:Members {size:2, ver:4} [ Member [127.0.0.1]:5902 - 1a6fc0b7-bcb9-4630-9c20-b8aece752b82 this Member [127.0.0.1]:5901 - e700c21f-faa1-42c6-996b-7c951df0e3f5 ]

问题现象

  1. 缓存功能正常,双节点均存有缓存数据
  2. 优雅关闭主节点(1a6fc0b7-bcb9-4630-9c20-b8aece752b82)后,从节点接管主节点身份,缓存可正常访问
  3. 原主节点以空缓存重新加入集群后,整个集群的缓存数据被完全清空

已尝试操作

  • 切换异步备份/普通备份,问题未解决

配置信息

Hazelcast配置

hazelcast:
  shutdownhook:
    enabled: false
  initial.min.cluster.size: 1
  phone.home.enabled: false
  network:
    port: 5901   
    auto-increment: true
    join:
      multicast-enabled: false
      tcp-ip:
        enabled: true
        members: 127.0.0.1, 127.0.0.1
  map:
    eviction-policy: LRU
    max-size-policy: FREE_HEAP_SIZE

Spring Boot关闭钩子

@PreDestroy
void preDestroy() {
    log.info("Shutting down instance and hazelcast.");
    hazelcastInstance.getLifecycleService().shutdown();
}

解决方案

1. 启用Map持久化存储

默认Hazelcast缓存仅存于内存,节点重启后缓存为空,加入集群时会触发数据同步覆盖现有数据。配置持久化让节点重启后从介质恢复缓存:

hazelcast:
  # 保留原有配置...
  map:
    eviction-policy: LRU
    max-size-policy: FREE_HEAP_SIZE
    persistence:
      enabled: true
      fs:
        base-dir: ./hazelcast-persistence
        parallelism: 4

2. 修改集群合并策略

默认合并策略会用新节点数据覆盖集群数据,改为优先保留集群现有数据的策略:

hazelcast:
  # 保留原有配置...
  map:
    eviction-policy: LRU
    max-size-policy: FREE_HEAP_SIZE
    merge-policy: com.hazelcast.map.merge.PassThroughMergePolicy

PassThroughMergePolicy会忽略新节点的空条目,保留集群已存在的数据。

3. 优化节点退出时的同步逻辑

在优雅关闭前强制完成备份同步,确保数据完整性:

@PreDestroy
void preDestroy() {
    log.info("Shutting down instance and hazelcast.");
    hazelcastInstance.getPartitionService().forceLocalPartitionBackup();
    hazelcastInstance.getLifecycleService().shutdown();
}

4. 确保版本与配置一致性

重启节点的Hazelcast版本、配置必须与集群现有节点完全一致,避免因版本/配置不匹配导致异常同步。


内容的提问来源于stack exchange,提问作者Priit Serk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 16:43:08