use*_*069 1 solr cassandra apache-zookeeper
为什么像 Solr 或 Kafka 这样的分布式系统需要 ZooKeeper,而像 Cassandra 这样的分布式系统不需要呢?
ZooKeeper 为关键系统状态提供高度一致的存储。许多系统,例如 Storm 和 Kafka 都依赖 ZooKeeper 来进行服务发现和领导者选举。由于ZooKeeper的ZAB协议落在CAP定理的CP端,因此它可以保证两个客户端不会看到同一系统的不同视图。因此,例如,Kafka 不会错误地认为节点 A 和节点 C 都是同一分区的领导者。
这些系统仅使用 ZooKeeper,因为它是一种经过充分测试和验证的技术,用于存储此类关键元数据。ZooKeeper 充当协调的中心点。然而,Cassandra 拥有更加去中心化的架构,并实现了自己的共识算法(Paxos),而不是像 ZooKeeper 这样依赖外部 CP 存储。根据 Cassandra 如何使用其八卦和共识协议,它可能只是做出一些让步,而 Kafka 和 Solr 等系统则不会。这使得 Cassandra 无需依赖外部系统(例如 ZooKeeper),而 ZooKeeper 通常比 HA 系统能够容忍更少的故障。
| 归档时间: |
|
| 查看次数: |
3167 次 |
| 最近记录: |