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

时间:2017-12-04 04:16:48

标签: hazelcast payara

启动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属性

通过“覆盖配置文件”提交自定义hazelcast-config.xml可能是一个选项,但这意味着应该通过此文件完成完整配置,这使得管理不是非常方便,但目前看起来像这样唯一可能有助于此的选择。

谢谢!

1 个答案:

答案 0 :(得分:2)

Payara服务器不直接公开此配置选项。使用系统属性hazelcast.local.localAddress是优先选项。但是,您不应该像使用-Dhazelcast.local.localAddress=...那样将其设置为JVM选项。

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

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