Consul 是什么
consul是一个支持多数据中心分布式高可用服务发现和配置共享的服务软件,由HashiCorp 公司用 Go 语言开发, 基于 Mozilla Public License 2.0 的协议进行开源. . Consul 支持健康检查,并允许 HTTP 和 DNS 协议调用 API 存储键值对.命令行超级好用的管理软件,vgrant 也是 HashiCorp 公司开发的产品.
一致性协议采用Raft算法,来保证服务的高可用, 使用 GOSSIP 协议管理成员和广播消息, 并且支持 ACL 访问控制.
Consul 的使用场景
docker实例的注册与配置共享
coreos 实例的注册与配置共享
vitess 集群
SaaS 应用的配置共享
与confd服务集成,动态生成ngnix和hapioxy配置文件
Consul 的优势
使用Raft算法来保证一致性,比复杂的Paxos算法更直接,相比而言,zookeeper采用的是Paxos算法,而etcd使用的是Raft
支持多数据中心,内外网的服务采用不同端口进行监听,多数据中心可以避免单数据中心的单节点故障,而部署可以考虑到网络延迟,分片的情况,zookeeper和etcd均不提供多数据中心的功能。
支持健康检查,etcd不提供此功能
支持http和dns协议接口,zookeeper的接口比较复杂,etcd只支持http协议,
官方提供web功能,etcd无此功能。
综合比较,Consul作为服务注册,和配置管理的新星。比较值得关注和研究。