Payara - Hazelcast 集群节点选择了错误的网络接口

Payara - Hazelcast cluster node picks the wrong network interface

启动 Payara 集群时,其中一个节点绑定到错误的 IP 地址(安装在节点本地的 docker 的内部 IP 地址)。

让 Payara Cluster 实例节点知道它应该绑定到哪个地址的正确方法是什么?

节点 1 日志:

[2017-12-04T11:35:06.512+0800] [Payara 4.1] [INFO] [] [com.hazelcast.internal.cluster.impl.MulticastJoiner] [tid: _ThreadID=16 _ThreadName=RunLevelControllerThread-1512358500010] [timeMillis: 1512358506512] [levelValue: 800] [[
[172.17.0.1]:5900 [dev] [3.8.5] 
Members [1] {
    Member [172.17.0.1]:5900 - 9be6669e-b853-44c0-9656-8488d3e1031b this
}
]]

节点 2 日志:

[2017-12-04T11:35:06.771+0800] [Payara 4.1] [INFO] [] [com.hazelcast.internal.cluster.impl.MulticastJoiner] [tid: _ThreadID=17 _ThreadName=RunLevelControllerThread-1512358500129] [timeMillis: 1512358506771 [levelValue: 800] [[
[10.4.0.86]:5900 [dev] [3.8.5] 
Members [1] {
    Member [10.4.0.86]:5900 - e3f9dd48-58b9-45f9-88fc-6b0feaedd78f this
}
]]

我已经测试了集群本身,它在只有一个接口的机器上正常工作(没有安装 docker)。

我发现了与我的案例相关的问题,但无法在 Payara 集群设置中调整它们:

意思是,建议使用本地 属性:-Dhazelcast.local.localAddress=[yourCorrectIpGoesHere] - 有效,但在集中管理节点配置的集群环境中 - 我看不到如何设置不同的 JVM每个节点的属性。

通过 "Override configuration file" 提交自定义 hazelcast-config.xml 可能是一个选项,但这意味着应该通过此文件完成完整配置,这使得管理起来不是很方便,但目前看起来像这是唯一可能在此处提供帮助的选项。

谢谢!

Payara 服务器不直接公开此配置选项。使用系统 属性 hazelcast.local.localAddress 是首选。但是,您不应该像

那样将其设置为 JVM 选项
-Dhazelcast.local.localAddress=...

而是使用管理控制台中的服务器页面添加系统属性。在 属性 选项卡上,转到 系统属性 选项卡并添加一个新的 属性 和 变量名称 hazelcast.local.localAddress覆盖值 设置为您希望 Hazelcast 绑定到的接口的 IP 地址。

这样,配置会在运行时应用,无需任何服务器重启,如果您还为集群实例设置了 属性,则还应该传播到集群中的其他实例。对于那些,您无需转到 服务器 页面,而是转到每个实例的配置并在那里设置系统 属性。