我即将在 Azure VM 上设置 Neo4j HA,Azure 可用性集中的 VM 的最佳排列方式是什么,以便为 Neo4j 提供 HA。
我认为,如果我将所有虚拟机放在一个可用性集中,则 Azure 可能会同时关闭我们的部分虚拟机而不是全部关闭,这可能会导致 Neo4j 集群无法创建用于写入数据的仲裁的情况。有没有建议在 Azure 云环境中设置 Neo4j HA?
答案1
我不是 Neo4j 专家,但如果我没记错的话,您至少需要使用 3 个节点才能实现 HA。
http://neo4j.com/docs/stable/ha-architecture.html
在 Azure 中,可用性集中的每个虚拟机都由底层平台分配一个更新域 (UD) 和一个故障域 (FD)。
对于 UD,您有 5 个插槽,这意味着只有在创建第六个实例后,您才会开始在同一个插槽上拥有多个虚拟机。因此最多 5 个虚拟机,如果需要,它们将在计划维护。
如果是计划外维护,FD 发挥着重要作用。对于经典 v1 IaaS,您只有 2 个插槽;对于 ARM v2 IaaS,您只有 3 个插槽。因此,对于需要至少 3 个节点的情况,我建议使用 v2 进行新部署。
也就是说,即使对于经典的 v1 IaaS,使用 LB 和可用性集时仍然可以享受 99.95% 的 SLA 保障。