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

MacOS ARM环境下Hazelcast容器无法连接Spring Boot应用问题排查

问题原因分析

1. MacOS上Hazelcast无法连接的核心原因

你使用的hazelcast/hazelcast:3.11是较老的版本,完全不支持ARM架构。ARM版Mac运行x86_64架构的容器时,依赖Docker Desktop的Rosetta转译环境,但老版本Hazelcast的网络初始化逻辑和转译环境不兼容,导致容器仅能执行启动命令,却无法完成集群服务的初始化,自然无法被外部客户端连接。

2. PostgreSQL能正常工作的原因

postgres:12.4官方镜像提供了多架构适配支持(包含ARM64版本),Docker会自动拉取适配你Mac ARM架构的镜像包,无需依赖Rosetta转译,因此网络映射和服务初始化都能正常完成。

解决方法

方法一:升级Hazelcast镜像版本(推荐)

Hazelcast从4.x版本开始正式支持ARM架构,将docker-compose中的Hazelcast镜像替换为支持ARM的稳定版(如4.2.5或更高版本),同时调整网络配置:

hazelcast:
  image: hazelcast/hazelcast:4.2.5
  ports:
    - 5701:5701
  environment:
    - JAVA_OPTS=-Dhazelcast.local.publicAddress=host.docker.internal:5701

用host.docker.internal代替localhost,这是Mac Docker内置的宿主机访问域名,能避免跨容器网络映射的兼容性问题。

方法二:适配老版本Hazelcast的网络配置(仅临时应急)

如果必须使用3.11版本,需做以下调整:

  • 确保Docker Desktop开启Rosetta转译(路径:设置->Features in development->Use Rosetta for x86/amd64 emulation on Apple Silicon)
  • 将publicAddress设置为Mac的局域网实际IP(而非localhost),同时同步修改Spring Boot客户端的连接地址:
environment:
  - JAVA_OPTS=-Dhazelcast.local.publicAddress=192.168.1.100:5701

内容的提问来源于stack exchange,提问作者petrov.aleksandr

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 21:39:36