【问题标题】:In Hazelcast, multicast auto discovery for the same vpc instances is not working在 Hazelcast 中,相同 vpc 实例的多播自动发现不起作用
【发布时间】:2014-03-28 11:26:50
【问题描述】:

我们已经开放了从 5701 到 5709 的 TCP 端口,还开放了 54327 的 UDP 端口,其中包括 aws 控制台中的入站和出站规则。

我们在两台机器的 Hazelcast 配置中都启用了多播模式为 true,TCP/IP 模式为 false。

并且还在 iptables 中添加了以下行

iptables -A INPUT -m pkttype --pkt-type multicast -j ACCEPT

但是两台机器 Hazelcast 集群成员没有连接。是否还有其他原因。请问这里是否还有其他遗漏的地方。

【问题讨论】:

    标签: java networking amazon-web-services multicast hazelcast


    【解决方案1】:

    Amazon EC2 网络不支持多播通信。见http://aws.amazon.com/vpc/faqs/

    是否可以将 Hazelcast 配置为仅使用常规 TCP 或 UDP 流量实现集群?

    【讨论】:

    • 是的。我们支持 3 种发现模式:tcp/ip、多播、ec2(它会查找公共 IP 地址,然后使用 tcp-ip)。一旦发现阶段结束,内部通信依赖于 tcp/ip。
    • 感谢您澄清这一点!
    • 我在使用 VPC 中的“AWS”发现插件的 Hazelcast 时也遇到了问题。
    【解决方案2】:

    首先尝试使用常规 TCP/IP 设置,以确保没有其他问题。

    一旦成功,请尝试以下(来自 Hazelcast 书籍)

    如果您没有看到成员加入,则可能是因为多播不可用。原因可能是防火墙;您可以通过禁用防火墙或在防火墙中启用多播来测试这一点[参见防火墙部分]。另一个原因可能是它在网络上被禁用或网络不支持它。在*NIX 环境中,您可以通过调用ifconfig | grep -i multicast 来检查您的网络接口是否支持多播,但这并不意味着它可用。 要检查多播是否可用,iperf 是一个适用于 Windows/*NIX/OSX 的有用工具。要使用 multicast-group 224.2.2.3 测试多播,请在网络中打开一个终端,其中有 2 台机器,并在第一个终端中运行以下命令:

    iperf -s -u -B 224.2.2.3 -i 1
    

    iperf -c 224.2.2.3 -u -T 32 -t 3 -i 1
    

    在另一个终端。如果正在传输数据,则多播正在工作。

    【讨论】:

    • 正如我在下面的回答中解释的那样:EC2 实例上不提供多播
    • 你是对的。我没有在他的问题中看到 EC2 部分。只有当我检查他的标签时,它才变得清晰。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 2019-12-25
    • 2021-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多