2

2 つの hazelcast ノードを同時に起動しようとしましたが、お互いを検出できません。これは、マルチキャストと tcp-ip ディスカバリの両方に当てはまります。後で1つのノードを再起動すると、お互いが見えます。再起動せずにお互いを発見させる方法はありますか? または、ノードの起動中に検出を延期する方法は?

構成:

    <network>
    <port auto-increment="true">5701</port>
    <outbound-ports>
        <!--
        Allowed port range when connecting to other nodes.
        0 or * means use system provided port.
        -->
        <ports>0</ports>
    </outbound-ports>
    <join>
        <multicast enabled="true">
            <multicast-group>224.3.3.6</multicast-group>
            <multicast-port>5705</multicast-port>
        </multicast>
    </join>
</network>

また

        <multicast enabled="false">
            <multicast-group>224.3.3.6</multicast-group>
            <multicast-port>5705</multicast-port>
        </multicast>
        <tcp-ip enabled="true">
            <member>host1:5701</member>
            <member>host2:5701</member>
            <member>host3:5701</member>
            <member>host4:5701</member>
        </tcp-ip>

UPD: クラスターの初期化前に、起動時に手動でランダム スリープを追加することで解決しました。

4

1 に答える 1

1

ノードは十分な時間実行されていますか? 私の経験では、発見通信 (マルチキャストと TCPIP) とは関係なく、ノードがお互いを見つけるまでにかなりの時間がかかる場合があります (30 秒)。

いくつかの試行錯誤の後、Hazelcast.com と私は非常に簡単な解決策を見つけました

config.setProperty("hazelcast.initial.min.cluster.size","2");

私の実験では、ソリューションはしばらく待つよりも高速で安定しています。

于 2013-12-23T13:51:37.697 に答える