在集群协调方面,zk/etcd 相对于 rdbms(如 mysql/pgsql)有何优势?
HA:现在的 rdbms 具有带见证的同步透明故障转移。
分布式系统可以更好地横向扩展,但我认为 hadoop/kubernetes 等东西的集群协调没有那么大的吞吐量或数据大小要求。
那么嗯... zk/etcd 为集群协调提供了哪些传统 rdbms 无法实现的功能?
最佳答案
自动领导选举是原因。 etcd
和其他共识系统实现共识算法,如 Raft或 PAXOS,以便在面对单个机器故障时,一组机器可以在没有人为干预的情况下找出下一步该做什么。人们将其用作实现安全分布式锁的一种方式,这种锁不受机器故障和裂脑情况的影响。
下面是 etcd 从包括领导者在内的两台机器故障中恢复的动画:https://speakerdeck.com/philips/coreos-plus-kubernetes-at-all-things-open?slide=55
关于mysql - 为什么 zk/etcd 而不是 rdbms 用于集群协调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32806161/