从本文开始,将会开始讨论 consul 的内部架构。首先这里引一张官网的图。

Consul arch(一) 概览


Agent

可以以 server mode 或 client mode 运行。所有的 agents 能运行 DNS 或 HTTP 接口,并且负责健康检查以及服务状态同步。通常,运行在 client mode 下的 agent 称为 client,运行在 server mode 下的 agent 称为 server。

client mode: 向 server 发 RPC 请求进行状态同步;参与 LAN gossip pool

server mode: 参加 Raft 相关行为; 响应 client 的 RPC 请求;与其他 Datacenters 交换 WAN gossip 信息;


Consensus 一致性

运行在 server mode 下的多个 agents 需要一致性协议同步状态。 consul 使用 raft 协议。


Gossip

consul 使用 serf 库memberlist 库 实现 gossip。

gossip 主要包括基于 UDP 的随机的点对点通信。

LAN Gossip:同一个 Datacenter 下的节点间的 gossip pool;

WAN Gossip:不通 Datacenters 间的服务器节点间的 gossip pool;


参考:

  • https://www.consul.io/docs/architecture
  • https://github.com/hashicorp/consul/tree/v1.8.5

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-12-17
  • 2021-12-19
  • 2022-12-23
  • 2021-06-15
猜你喜欢
  • 2021-07-23
  • 2021-12-25
  • 2021-12-04
  • 2021-04-25
  • 2021-06-24
  • 2021-07-20
  • 2021-09-19
相关资源
相似解决方案