簡體   English   中英

當TCPPING.initialHost包含多個主機時,Infinispan / JGroups群集連接失敗

[英]Infinispan/JGroups cluster connection failure, when TCPPING.initialHost contains multiple hosts

我正在嘗試使用TCP傳輸配置Infinispan。

如果在TCPPING.initialHosts我放置了所有潛在集群節點的列表,則集群根本不連接 - 大約有15個潛在節點,其中大多數都已死,通常只有2或3個存活。

但是,如果在TCPPING.initialHosts我只列出了2-3個主機,則會成功創建群集。

我做錯了什么?

更新:據我在日志和堆棧跟蹤中看到,創建了活動節點之間的連接,並且節點交換了一些消息。 但是,群集仍未形成。

更新:這是創建JChannel的代碼:

    JChannel ch = new JChannel(false);
    ProtocolStack stack = new ProtocolStack();
    ch.setProtocolStack(stack);

    // TCPPING is responsible for discovery
    TCPPING tcpping = new TCPPING();
    List<IpAddress> initial_hosts = ... // get lists of hosts, list can be quite big
    tcpping.setInitialHosts(initial_hosts);
    tcpping.setErgonomics(false);
    tcpping.setPortRange(0);
    tcpping.setNumInitialMembers(3);

    TCP tcp = new TCP();
    tcp.setBindAddress(InetAddress.getByName(server.getHostName()));
    tcp.setBindPort(server.getPort());
    tcp.setThreadPoolMaxThreads(30);
    tcp.setOOBThreadPoolMaxThreads(30);

    NAKACK nakack = new NAKACK();
    nakack.setUseMcastXmit(false);
    nakack.setDiscardDeliveredMsgs(false);

    MERGE2 merge = new MERGE2();

    RSVP rsvp = new RSVP();
    rsvp.setValue("timeout", 60 * 1000);
    rsvp.setValue("resend_interval", 500);
    rsvp.setValue("ack_on_delivery", false);

    stack
        .addProtocol(tcp)
        .addProtocol(tcpping)
        .addProtocol(merge)
        .addProtocol(new FD_SOCK())
        .addProtocol(new FD())
        .addProtocol(new VERIFY_SUSPECT())
        .addProtocol(nakack)
        .addProtocol(new UNICAST2())
        .addProtocol(new STABLE())
        .addProtocol(new GMS())
        .addProtocol(new UFC())
        .addProtocol(new MFC())
        .addProtocol(new FRAG2())
        .addProtocol(rsvp);
    stack.init();

    return ch;

也許發現階段需要太長時間,因為JGroups嘗試建立與15個主機的連接,並且只有2-3個存活。 我建議將TCP.scok_conn_timeout設置為一個較低的值(200?),以便我們從連接返回到最大200ms后關閉的主機。 可能需要增加GMS.join_timeout,以及TCPPING.timeout。 它們應該高於最長的發現階段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM