IgniteFAQ-6-Ignite 透過zk組網時叢集組網失敗

life_start發表於2024-08-08

zk組網類

ZookeeperDiscoverySpi zkDiscoverySpi = new ZookeeperDiscoverySpi();
cfg.setDiscoverySpi(zkDiscoverySpi);
配置示例:
# ignite 叢集租房方式,配置 zk 為,zk 叢集組網方式
fc.mybatis.ignite.discovery=zk
# Ignite zk 叢集組網方式
ignite.discoverySpi.zkConnectionString={zkAddress}
ignite.discoverySpi.sessionTimeout=30000
ignite.discoverySpi.zkRootPath=/apacheIgnite
ignite.discoverySpi.joinTimeout=30000
zk jute.maxbuffer設定小於1024時會導致Ignite透過zk組網失敗

原因:1)ignite啟動時第一個節點為coordinate節點,後啟動節點會與第一個節點交換元資訊資料後再加入ignite叢集。

2)由於joinDataSize較大,會導致節點處理超過10s,從而導致ignite節點啟動失敗。

3)由於joinDataSize較大,zk服務端會報錯超過預設資料大小,從而導致ignite不同節點無法完成資料交換,從而超時導致節點啟動失敗。

解決:1)調整discoverSpi.joinTimeout時間變大(預設10s)。

2)調整SEE 平臺zk 的配置引數jute.maxbuffer 變大 (預設 1 對應實際配置1024000)。

原因:節點未自動加入拓撲

解決方式:在ignite啟動後透過ignite.cluster().setBaselineTopology(baseLineNodes) 方式新增節點到ignite叢集拓撲中。

相關文章