【问题标题】:Creating HazelCast cluster running on multiple docker containers创建在多个 docker 容器上运行的 HazelCast 集群
【发布时间】:2016-05-19 16:06:12
【问题描述】:

如果我们想在多个 docker 容器上运行的实例之间形成 Hazelcast 集群,有谁知道需要在 Hazelcast.xml 中进行什么配置。我们应该提供 127.0.0.1 作为成员的地址还是应该是 docker 主机的地址? local.localAddress 属性也需要指向 docker 主机地址吗?

编辑:

我们通过设置公共 ip 进行了一些更改,并且能够形成集群,但是在 docker run 命令中定义端口映射时,如果我们设置不同的主机端口和映射,主机的端口应该与容器的端口相同它到像 8047:5071 这样的 hazelcast 端口它不起作用它必须是 5701:5701,知道为什么会出现这种行为

【问题讨论】:

  • 您要部署到哪个环境?任何类型的服务发现(zookeper、eureka、kubernetes,...)可用?
  • 没有服务发现,它只是同一子网中的两台不同机器运行具有 hazelcast 实例的 docker 容器
  • @PunitGoel 如果你的 docker 容器在不同的机器上,你如何形成一个集群? (通过多播或在 hazelcast.xml 中指定机器的 IP 地址)

标签: docker hazelcast


【解决方案1】:

您可以将 hazelcast 配置中的 public-addressproperty 设置为主机的 ip。这将允许节点加入集群。

 <network>
    <public-address>host-machine-ip</public-address>
</network>

【讨论】:

  • 我们设置的是公网ip,可以组成集群,但是在docker run命令中定义端口映射时,如果我们设置不同的主机端口,主机的端口应该与容器的端口相同并将其映射到 hazelcast 端口,如 8047:5071 它不起作用它必须是 5701:5701,知道为什么会出现这种行为
  • 默认情况下,hazelcast 会尝试使用 5071 端口加入。但是当您将主机端口映射为 8047 时,它找不到。您可以做的是提供映射端口作为下一个节点中的成员。喜欢&lt;member&gt;memberIp:8047&lt;/member&gt;
猜你喜欢
  • 1970-01-01
  • 2017-07-29
  • 2021-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-09
相关资源
最近更新 更多