此题应该选择D. 原因如下:
关于A,Zookeeper的部署其实部署偶数个节点也没太大问题,不过6台机器组成的集群与5台机器组成的集群,都最多能容忍2台机器宕机(>N/2)。从这个意义来讲,效果相同。另外偶数节点部署有风险,比如6台机器的集群分布在两个机房,每个机房3台。如果机房之间网络中断,这种情况下会导致Leader无法选举出来,导致服务处于不可用状态。
关于B,Leader,Follower这两个角色会参与选举,Observer是为了提高读性能而不影响写性能而引入的角色,不会参与Leader选举。
关于C,所有来自客户端的写请求,无论连接到什么角色的节点,都会Forward给Leader来统一处理,然后有序分发给各个Follower.
D 没问题。