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

Hazelcast 5.2.1嵌入式模式下新实例间歇性无法通过TCP连接主节点问题求助

Hazelcast 5.2.1嵌入式模式下新实例间歇性无法通过TCP连接主节点问题求助

大家好,我最近碰到一个Hazelcast的间歇性问题,折腾了好一阵没解决,想请教下社区的朋友们:

环境背景

  • 我在Spring Boot应用中使用Hazelcast 5.2.1嵌入式模式,采用TCP IP集群配置
  • 应用部署在Cloud Foundry上,集群跨多个CF应用,已开启Zone Aware分区特性提升韧性,集群规模通常保持在18个实例以上
  • TCP IP配置的members参数中指定了多个apps.internal路由
  • Cloud Foundry对应用有5分钟的健康检查窗口,如果新实例在这个窗口内无法确认加入集群,就会被强制重启;目前的情况是通常重启几次后,某个实例能成功连接主节点

问题现象

这个问题是间歇性出现的,只有当新实例从非主节点获取主节点IP时才会触发:

  1. 开启Trace级日志后,首先会看到这两条日志:

"thread":"main","level":"DEBUG","logger":"c.h.i.s.tcp.TcpServerConnectionManager","message":"[new_instance_ip]:5701 [cluster-name] [5.2.1] Connection to: [domain_1]:5701 streamId:-1 is not yet in progress"
"thread":"hz.peaceful_faraday.cached.thread-2","level":"TRACE","logger":"c.h.i.server.tcp.TcpServerConnector","message":"[new_instance_ip]:5701 [cluster-name] [5.2.1] Starting to connect to [domain_1]:5701"

  1. 之后实例会持续打印以下日志,直到最终崩溃:

thread":"main","level":"DEBUG","logger":"c.h.internal.cluster.impl.TcpIpJoiner","message":"[new_instance_ip]:5701 [cluster-name] [5.2.1] Sending join request to [master_ip]:5701"
thread":"hz.magical_elgamal.generic-operation.thread-0","level":"DEBUG","logger":"c.h.i.cluster.impl.ClusterJoinManager","message":"[new_instance_ip]:5701 [cluster-name] [5.2.1] Handling master response [master_ip]:5701 from [non_master_ip]:5701"
thread":"hz.magical_elgamal.generic-operation.thread-0","level":"DEBUG","logger":"c.h.internal.cluster.ClusterService","message":"[new_instance_ip]:5701 [cluster-name] [5.2.1] Setting master address to [master_ip]:5701"
thread":"hz.magical_elgamal.generic-operation.thread-0","level":"DEBUG","logger":"c.h.i.cluster.impl.ClusterJoinManager","message":"[new_instance_ip]:5701 [cluster-name] [5.2.1] Handling master response [master_ip]:5701 from [non_master_ip]:5701"

  1. 最关键的是:整个过程中从未看到新实例打印“Starting to connect to [master ip]”的日志,而且我检查了主节点的日志,完全没有这个新实例的连接记录,看起来新实例根本没有执行ConnectTask去尝试连接主节点。

已尝试的无效调整

我做了不少配置调整,但都没能改善这个问题:

  • 降低hazelcast.max.join.seconds参数值至30
  • 将hz:io线程池大小增加到64
  • 将default线程池大小增加到64
  • 增加hazelcast.io.thread.count至32
  • 增加hazelcast.io.input.thread.count至32
  • 增加hazelcast.io.output.thread.count至32
  • 显式禁用多播配置
  • 关闭端口自动递增,手动指定端口

原本我以为这些调整能促使ConnectTask执行,启动对主节点的连接或者触发重试逻辑,但问题依旧存在。

有没有朋友碰到过类似的情况,或者能给点排查方向的建议?

备注:内容来源于stack exchange,提问作者YourAvgDev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 10:29:49