如何在 Arangodb 中仅使用 2 或 3 台机器提供 HA

How to provide HA with just 2 or 3 machine in Arangodb

我正在按照文档 https://docs.arangodb.com/3.0/Manual/Deployment/ 进行集群设置,似乎除非我们使用 Mesos,DC/OS 集群太笨拙了(需要手动对源代码进行二进制编译)。我尝试使用最小配置设置 Apache Mesos,但最小配置非常昂贵!它每月花费大约 1300 美元(许多 xlarge ec2 实例)。所以,这已经结束了。

是否可以仅通过更改 arangodb 设置中的配置来设置 HA?我想要的只是 运行 最少 2 台机器,复制(同步或异步)数据并将客户端连接到负载均衡器后面。可能吗。你有什么建议吗。我发现 https://www.arangodb.com/2016/12/starting-arangodb-cluster-easy-way/ 但它是实验性的。不想在生产环境中使用实验作品。 目前,我们在 3 个 arangodb 集合中托管了大约 4000 万份文档。每小时分析这 4000 万份文件。

不适用于仅配置更改。如果你想实现 HA,你将不得不在你的 2 个盒子上设置一个集群。但让我在这里提出一个问题,您应该首先记住这一点。

集群配置,即数据库布局、集合、分片复制等需要依赖复制状态机; arangodb 代表的是 "the agency"。它是通过 RAFT 共识协议实现的。 RAFT 和熟悉的复制状态机在概念上要求奇数个实例或机器。因此,您可以完美地在具有 3 个代理的 2 个机器上安装 arangodb,其中 2 个必须以某种方式同时存在于一个机器上,但这有点移除了任意机器故障的额外安全网。你的 2 机框将继续提供数据和 foxx 应用程序,只要它是带有单个代理的框,失败。如果另一个失败,系统将停止运行,直到其他 2 个代理返回。 话虽如此,这就是你在两台机器上的做法:

  1. 重新设计您的集合时考虑到分片。
  2. 备份你的数据库。
  3. 设置新集群。
  4. 从 1 开始实施您的设计。
  5. 将您的数据和应用恢复到集群中。

第 3 步是您在这里最感兴趣的一步。您将需要一个用于 3 个代理、2 个协调器和 2 个数据库服务器的配置文件。如果你想移动到 3 个盒子,你显然会相应地增加数据库服务器和协调器的数量。配置文件将指示 7 个服务的专用数据库目录;一台机器上 4 个,另一台机器上 3 个。

您需要在启动时在一台机器上启动所有 4 个服务,在另一台机器上启动 3 个服务。有关配置文件的详细信息,请查看集群 arangodb 的社区松弛频道。