我需要在 docker 环境中为具有多个复制因子的 Web 应用程序设置 hazelcast,并使用 docker swarm 使用覆盖网络在多主机中部署应用程序。
我面临的问题是服务无法在集群模式下发现其他节点,但在 docker compose 中工作正常。我正在使用以下配置进行 hazelcast 配置。
<port auto-increment="true">5701</port>
<join>
<multicast enabled="false">
<multicast-group>224.2.2.3</multicast-group>
<multicast-port>54327</multicast-port>
</multicast>
<tcp-ip enabled="true">
<member>hazelcast-master</member>
</tcp-ip>
</join>
这里 hazelcast-master 是我在 docker 中的服务名称。
如有任何帮助,我们将不胜感激
最佳答案
你是如何配置你的docker网络的?你的 DNS 服务器中有 hazelcast-master 吗?默认情况下,docker 使用与主机相同的 DNS,但是如果您将 hazelcast-master 放在/etc/hosts 中,您的 docker guest 将看不到它并且无法使用它。使用主机的 IP 地址、输入完整的主机域名(来自 DNS)或在运行 docker 容器时使用 --add-host。
关于java - 使用 docker stack 部署时 Hazelcast 节点未发现其他节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56321110/