我在我的软件中使用 hazelcast 3.3 在集群中进行缓存。我的代码基于以下示例 Stackoverflow tcp hazelcast example . (更新 2) 现在我面临以下问题: 我运行我的程序的主机有各种网卡(=> 多个 IP 号码)。我想在同一台机器上使用不同的接口(interface)(IP 号码)启动我的程序的各种实例 这个的 tcp 配置似乎是
network.getInterfaces().setEnabled(true).addInterface("<MY IP NUMBER>");
无论我在这里给出什么 IP,在操作系统端 hazelcast 总是绑定(bind)到 0.0.0.0(所有 IP)。 这是通缉吗?我希望 hazelcast 只绑定(bind)到特定的 IP。 hazelcast 是否自行进行数据包过滤并因此同时绑定(bind)到所有接口(interface)? 这意味着我不能为我的各种正在运行的程序实例使用相同的端口号,因为绑定(bind)到 0.0.0.0 当然会失败启动第二个客户端(这实际上发生了)
最佳答案
研究 Hazelcast 文档(网络) 明确地说 Hazelcast 默认绑定(bind)到所有网络接口(interface)。要更改此系统属性: hazelcast.socket.bind.any 文档说:设置为 false,它只会绑定(bind)到指定的接口(interface)。 我没有检查出来,但它听起来像是解决我的问题的方法。
编辑:我现在尝试了并且成功了。 Hazelcast 仅连接到给定的接口(interface)。
关于tcp - 用于多个网络接口(interface)的 Hazelcast 程序化 TCPIP 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29898337/