Consul 介绍
Consul是一个分布式、高可用性,在基础设施中发现和配置服务的工具。
主要功能
- 服务发现
- 通过DNS或HTTP接口使得消费者发现服务,应用程序可以轻松找到所依赖的服务。
- 健康检查
- 防止将请求转发不健康的主机。
- 键值存储
- 可以使用分层键/值存储,比如功能标记、动态配置等。
- 多数据中心
- 开箱即用,不需要复杂的配置。这就意味这不用建立抽象的逻辑来扩展多个地区。
1)Consul agent是Consul核心工作,分为client和server两种工作模式。
- 默认以client模式运行,提供服务注册、健康检查、转发查询给server leader。
- server模式启动时使用-server选项指定,用于维护Consul集群状态、Raft协议进行选举。
2)agent必须在每个Consul节点运行,所有运行Consul agent节点构成Consul集群。
3)官方建议Consul集群至少3或5个节点运行Consul agent server模式,client节点不限。
4)通过join或rejoin选项加入集群。一旦加入,集群信息使用gossip算法同步到整个集群节点。
Consul集群部署
如图,左边三台Consul agent server 集群通过选举,选出一台Leader。来管理右边的client。获取集群状态信息。
Consul agent server-bootstrap自动选举本机为Leader。管理台client。获取集群信息。
Consul高可用
- 3台允许坏1台
- 5台允许坏2台