gpt4 book ai didi

java - 由于 docker-machine 使用 vboxnet,Hazelcast 多播无法工作

转载 作者:行者123 更新时间:2023-11-30 06:30:07 25 4
gpt4 key购买 nike

在我的 macO 上安装 dockerForMac 和 virtualbox 后,本地 hazelcast 成员无法通过 hazelcast 的多播配置(不在容器中)看到彼此。看起来他们都是集群中的master,端口不同。

安装 docker 等东西后的区别是成员的 IP 地址。这是我的本地 IP 地址,但现在 vboxnet 使用 192.168.99.1。查看我的 ifconfig。

This comment is about the port usage of multicast discovery function: It looks like Hazelcast uses multicast address 224.2.2.3 on UDP port 54327 (by default) for discovery, and then port 5701 for TCP communication. Opening UDP port 54327 in the firewall fixed discovery for me. (I had also opened TCP port 5701 but that was not sufficient.)

有没有办法让 hazelcast 使用我的 IP 地址?或者是否有办法为 vnetbox 打开这些端口?

ifconfig:

vboxnet0: flags=8842<BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether XX:XX:XX:00:00:00
vboxnet1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether XX:XX:XX:00:00:01
inet 192.168.99.1 netmask 0xffffff00 broadcast 192.168.99.255

节点 1:

2017-09-21 12:52:20.882 DEBUG 74783 --- [           main] c.h.i.cluster.impl.MulticastJoiner       : [192.168.99.1]:5701 [OSMAN] [3.8.4] PostJoin master: [192.168.99.1]:5701, isMaster: true
2017-09-21 12:52:20.882 INFO 74783 --- [ main] c.h.i.cluster.impl.MulticastJoiner : [192.168.99.1]:5701 [OSMAN] [3.8.4]

Members [1] {
Member [192.168.99.1]:5701 - c38919ff-d992-4d2e-a7f8-afaae146e5d5 this
}

2017-09-21 12:52:20.906 INFO 74783 --- [ main] com.hazelcast.core.LifecycleService : [192.168.99.1]:5701 [OSMAN] [3.8.4] [192.168.99.1]:5701 is STARTED

节点 2:

2017-09-21 12:52:21.513 DEBUG 74800 --- [           main] c.h.i.cluster.impl.MulticastJoiner       : [192.168.99.1]:5702 [test-group] [3.8.4] PostJoin master: [192.168.99.1]:5702, isMaster: true
2017-09-21 12:52:21.513 INFO 74800 --- [ main] c.h.i.cluster.impl.MulticastJoiner : [192.168.99.1]:5702 [test-group] [3.8.4]

Members [1] {
Member [192.168.99.1]:5702 - e21bbd01-b55f-4e6e-8a04-eff4402e300a this
}

2017-09-21 12:52:21.513 WARN 74800 --- [ main] com.hazelcast.instance.Node : [192.168.99.1]:5702 [test-group] [3.8.4] Config seed port is 5701 and cluster size is 1. Some of the ports seem occupied!

Hazelcast 配置:

@Bean
public Config hazelCastConfig() {
Config config = new Config();
config.getGroupConfig().setName("test-group");
config.getGroupConfig().setPassword("test-password");
config.getNetworkConfig().getJoin().getTcpIpConfig().setEnabled(false);
config.getNetworkConfig().getJoin().getAwsConfig().setEnabled(false);
config.getNetworkConfig().getJoin().getMulticastConfig().setEnabled(true);
return config;
}

最佳答案

我偶然将多播组更改为224.0.0.1,令人惊讶的是它有效。成员们开始互相见面。

multicastConfig.setMulticastGroup("224.0.0.1");

除 224.0.0.1 之外,“224.0.0.0 和 239.255.255.255”之间的多播组的任何其他 IP 地址均不起作用。

所以在这一点上;我的问题是为什么选择 224.2.2.3 作为默认多播组 IP 地址?它无法使用 vboxnet 适配器。

看来224.0.0.1的描述是"The All Hosts multicast group addresses all hosts on the same network segment."这意味着它应该是多播组 IP 地址的默认值

关于java - 由于 docker-machine 使用 vboxnet,Hazelcast 多播无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46341715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com