【问题标题】:Server unable to join Hazelcast cluster via multicast enabled?服务器无法通过启用多播加入 Hazelcast 集群?
【发布时间】:2022-03-15 14:57:31
【问题描述】:

我有相同的 Hazelcast 服务器项目在 3 个不同的服务器上运行,其中两个能够形成集群,但第三个服务器没有加入。我已经使用 spring-boot 创建了 Hazelcast 服务器项目。这是我的 Spring Boot Hazelcast 配置。

    @Bean
    public Config hazelCastConfig() {
        Config config = new Config();
        config.getNetworkConfig().setPortAutoIncrement(true);
        config.setClusterName("myHazelcastStore");
        NetworkConfig network = config.getNetworkConfig();
        JoinConfig join = network.getJoin();
        join.getMulticastConfig().setEnabled(true);
        return config;
    }
    
    @Bean
    public HazelcastInstance hazelcastInstance(Config hazelCastConfig) {
        return Hazelcast.newHazelcastInstance(hazelCastConfig);
    }
    
    @Bean
    public Map<String, EmployeeAccount> employeeMap(HazelcastInstance hazelcastInstance) {
        return hazelcastInstance.getMap("employeeMap");
    }

我正在使用 Hazelcast IMDG v4.2.2 的最新稳定版本。我在 Hazelcast 配置中启用了多播。我的三个服务器的 IP 是:

192.168.1.10
192.168.1.25
192.168.34.122

这里有两个同一系列一个不同。是不是这个原因。或者 Hazelcast 免费版是否有任何限制,因为只有 2 个服务器可以组成集群?

【问题讨论】:

  • 集群大小没有限制。您可以尝试使用上面指定的三个 IP 地址的 TcpIpConfig 吗?这将有助于确认机器是否可以相互通信。
  • @NeilStevenson 也没有使用过,我之前尝试过。

标签: spring-boot hazelcast


【解决方案1】:

Hazelcast 开源(免费)版本没有限制。您可以根据需要创建尽可能大的集群。

关于您的问题,多播应该可以正常工作。如果没有,我会检查以下部分:

  1. 尝试使用static TCP/IP configuration(如果它不起作用,那么这是连接问题,而不是可发现性问题)。

  2. 如果 TCP/IP 工作正常,那么接下来要检查的是多播数据包是否在您的网络中工作(有时它们可​​能会被阻止)。

  3. 如果仍有问题,能否附上 Hazeclast 日志?

【讨论】:

  • 多播通常不能跨子网工作。您有 192.168.1 和 192.168.34 作为子网。
  • @NeilStevenson 作为后续问题,使用多播是否安全,或者我们应该始终更喜欢 tcp/ip
  • 您应该更喜欢 TCP/IP 或一些发现插件。在这里查看更多信息:docs.hazelcast.com/imdg/4.2/clusters/discovery-mechanisms.html
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多