赞
踩
Etcd 和 Zookeeper 提供的能力非常相似,在软件生态中所处的位置也几乎是一样的,可以互相替代的。
都是通用的一致性元信息存储,
都提供watch机制用于变更通知和分发,
也都被分布式系统用来作为共享信息存储,
二者除了实现细节,语言,一致性协议上的区别,最大的区别在周边生态圈。
Zookeeper 是apache下的,用java写的,提供rpc接口,最早从hadoop项目中孵化出来,在分布式系统中得到广泛使用(hadoop, solr, kafka, mesos 等)。
Etcd 是coreos公司旗下的开源产品,比较新,以其简单好用的rest接口以及活跃的社区俘获了一批用户,在新的一些集群中得到使用(比如kubernetes)。
虽然v3为了性能也改成二进制rpc接口了,但其易用性上比 Zookeeper 还是好一些。
而 Consul 的目标则更为具体一些,Etcd 和 Zookeeper 提供的是分布式一致性存储能力,具体的业务场景需要用户自己实现,比如服务发现,比如配置变更。
而Consul 则以服务发现和配置变更为主要目标,同时附带了kv存储。
在软件生态中,越抽象的组件适用范围越广,但同时对具体业务场景需求的满足上肯定有不足之处。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。