2017-08-28 15 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(); 
相关问题