1、Consul 是什么
愿意了解源码的朋友直接企鹅求求:二一四七七七五六三三
Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件,采用 Go 语言开发。
Consul 支持健康检查,并允许 HTTP 和 DNS 协议调用 API 存储键值对。Consul 采用 Raft 一致性协议算法,来保证服务的高可用;使用 GOSSIP 协议管理成员和广播消息,并且支持 ACL 访问控制。
2、Consul 的使用场景
Docker 实例的注册与配置共享
与 Consul template 服务集成,动态生成 Nginx 和 HAProxy 等配置文件
Spring-Cloud-Consul 服务发现和配置文件存储
3、Consul 的优势
使用 Raft 算法来保证一致性, 比 ZooKeeper 的 Paxos 算法更简单直接。
支持多数据中心,内外网的服务采用不同的端口进行监听。 ZooKeeper 和 etcd 均不提供多数据中心功能的支持。
支持健康检查,etcd 不提供此功能。
支持 http 和 dns 协议接口。ZooKeeper 的集成较为复杂,etcd 只支持 http 协议。
官方提供 web 管理界面,etcd 无此功能。
Consul 1.2 新增 Service Mesh 解决方案。
4、Consul、ZooKeeper、etcd、Eureka 比较
代码结构图:资料和源码来源