2017-08-28 13 views
1

爲了在不同的機器上對主機A(主機),B,C進行羣集。當主機A(主機)死機時,是否有任何方法可以自動重定向到羣集中的另一個活動節點(在此情況下爲B,C)?

以守護進程羣集3機,我執行3個命令下面

在主機A nohup arangodb --starter.data-dir=/mypath/arangodb/ &

在主機B nohup arangodb --starter.join A(ip adress for A) --starter.data-dir=/mypath/arangodb/ &

在主機C nohup arangodb --starter.join A(ip adress for A) --starter.data-dir=/mypath/arangodb/ &

而且我得到3個協調器(端口:8529),3個數據庫服務器(端口:8530)和3個代理(端口:8531)成功集羣。

而我使用java客戶端進行基本CRUD羣集。 ArangoDB arangoDB = new ArangoDB.Builder().host(hostA, PORT).build(); hostA:A(主)的主機,端口:8529

我對此有疑問!

如果主機A(主設備)死了,任何對主機A的請求都被阻止並且連接被拒絕。

當主機A死了時,是否有任何方法可以自動重定向到羣集中的另一個活動節點(在此情況下爲B,C)?

回答

1

從版本4.1.10開始,ArangoDB Java驅動程序支持主機回退。只需使用多個方法host(String, int)爲您的每個協調員。

只要驅動程序與hostA失去連接,它就會嘗試連接到hostB等。只有在每個主機不可訪問之後,纔會拋出異常。

ArangoDB arangoDB = new ArangoDB.Builder() 
    .host(hostA, PORTA) 
    .host(hostB, PORTB) 
    .host(hostC, PORTC) 
    .build(); 
相關問題