当主机 A(master)死了时,有什么方法可以自动重定向到集群中的另一个活动节点(在这种情况下 B,C)?

Is there any way to redirecting to another alive node(in this situation B,C) in cluster automatically when host A(master) is dead?

为了将主机A(master)、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(master)的主机, PORT: 8529

我对此有疑问!

如果主机 A(master)挂了,任何对主机 A 的请求都会被阻止并且连接被拒绝。

有什么方法可以在主机 A 死机时自动重定向到群集中另一个活动节点(在这种情况下为 B、C)?

ArangoDB Java 驱动程序支持从版本 4.1.10 开始的主机回退。只需为每个协调器多次使用方法 host(String, int)

一旦驱动程序失去与 hostA 的连接,它就会尝试连接到 hostB,依此类推。只有在每个主机都不再可达后才会抛出异常。

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