Consul 入门实战(1)-
Consul 是 HashiCorp 公司提供一个服务网格解决方案,具有服务发现、配置管理登功能。本文主要介绍下 Consul 的基本概念。
1、Consul 的特点
服务发现(Service Discovery):客户端在 Consul 注册为服务,其他客户通过 Consul 获取服务的提供方;通过 DNS 或 HTTP 的方式,应用可以很容易的找到它所依赖的服务。
健康检查(Health Checking):Consul 客户端可以提供任意数量的运行状况检查,这些检查可以与给定服务相关联(”Web 服务器是否返回 200 OK”),也可以与本地节点(”内存利用率是否低于 90%”)相关联。可以使用此信息来监视群集运行状况,服务发现组件可以使用此信息将流量从运行状况不佳的主机路由出去。
Key/Value 存储:应用可以将 Consul 的键/值存储用于任意目的,包括动态配置、功能标记、协调、领导者选举等;简单的 HTTP API 使其易于使用。
安全服务通信:Consul 可以为服务生成 TLS 证书,以建立 TLS 连接。意图可用于定义允许哪些服务进行通信。服务分割可以轻松管理,其意图可以实时更改,而不是使用复杂的网络拓扑和静态防火墙规则。
多数据中心:Consul 支持开箱即用的多个数据中心;这意味着 Consul 的用户不必担心需要构建额外的抽象层来扩展到多个区域。
2、Consul 架构
上图中有两个 DataCenter,他们通过 Internet 互联;为了提高通信效率,只有 Server 节点才加入跨数据中心的通信。
在单个数据中心中,Consul 分为 Client 和 Server 两种节点(所有的节点都是 Agent),Server 节点保存数据,Client 负责健康检查及转发请求到 Server;Server 节点有一个 Leader 和多个 Follower,Leader 节点会将数据同步到 Follower,Server 的数量推荐是 3 到 5 个,在 Leader 挂掉的时候会启动选举机制产生一个新的 Leader。