ZooKeeper双机房部署方案讨论

背景

  对于ZK集群,理论上至少三个机房才能真正做到跨机房容灾。但在实际环境中,由于成本的原因,大多中小公司采用双机房部署的方案,存在两种形式。

方案一:非对等部署

  非对等部署:投入更多的资源重点维护某个机房,如下图所示。

优点

  1. 集群总量可为奇数,容错性更好;
  2. 有一定的跨机房容灾能力,机房B挂掉认可正常运行;

缺点

  1. 存在数据丢失的可能(机房A被毁,且Master在机房A时);

这里写图片描述

方案二:对等部署

  对等部署:两个机房的资源分配是对等的,如下图所示。

优点

  1. 保证数据的不丢失;

缺点

  1. 没有跨机房容灾能力,任意一个机房挂掉,ZK集群不可用;
  2. 写性能不如非对等部署方案;
  3. 集群数量为偶数,容错性不如非对等方案;

这里写图片描述