Consol

1. 简介

2. 术语

  •  Agent: agent是一直运行在Consul集群中每一个成员上的守护进程。经过运行 consul agent 来启动。agent能够运行在client或者server模式。
  • Client: 一个Client是一个转发全部RPC到server的代理。这个client是相对无状态的。client惟一执行的后台活动是加入LAN gossip池。这有一个最低的资源开销而且仅消耗少许的网络带宽。
  • Server: 一个server是一个有一组扩展功能的代理,这些功能包括参与Raft选举,维护集群状态,响应RPC查询,与其余数据中心交互WAN gossip和转发查询给leader或者远程数据中心。
  • DataCenter: 虽然数据中心的定义是显而易见的,可是有一些细微的细节必须考虑。例如,在EC2中,多个可用区域被认为组成一个数据中心?咱们定义数据中心为一个私有的,低延迟和高带宽的一个网络环境。这不包括访问公共网络,可是对于咱们而言,同一个EC2中的多个可用区域能够被认为是一个数据中心的一部分。
  • Gossip: Consul创建在Serf的基础之上,它提供了一个用于多播目的的完整的gossip协议。Serf提供成员关系,故障检测和事件广播。更多的信息在gossip文档中描述。这足以知道gossip使用基于UDP的随机的点到点通讯。
  • LAN Gossip: 它包含全部位于同一个局域网或者数据中心的全部节点。
  • WAN Gossip: 它只包含Server。这些server主要分布在不一样的数据中心而且一般经过因特网或者广域网通讯。
  • RPC: 远程过程调用。这是一个容许client请求server的请求/响应机制。

3. Consol架构

  • 每一个数据中心,client和server是混合的。通常建议有3-5台server
  • 同一个数据中心的全部节点都必须加入gossip协议。这意味着gossip协议包含一个给定数据中心的全部节点。
  • 每一个数据中心的server都是Raft节点集合的一部分。这意味着它们一块儿工做并选出一个leader,一个有额外工做的server。leader负责处理全部的查询和事务。做为一致性协议的一部分,事务也必须被复制到全部其余的节点。由于这一要求,当一个非leader得server收到一个RPC请求时,它将请求转发给集群leader。
  • server节点也做为WAN gossip Pool的一部分。这个Pool不一样于LAN Pool,由于它是为了优化互联网更高的延迟,而且它只包含其余Consul server节点。这个Pool的目的是为了容许数据中心可以以low-touch的方式发现彼此。这使得一个新的数据中心能够很容易的加入现存的WAN gossip。由于server都运行在这个pool中,它也支持跨数据中心请求。当一个server收到来自另外一个数据中心的请求时,它随即转发给正确数据中想一个server。该server再转发给本地leader。
相关文章
相关标签/搜索