Consul:ANTI-ENTROPY
Consul使用先进的方式来维护服务和健康信息。本文详细描述服务和检查如何注册,目录如何生成和健康信息改变时如何更新。
Components
首先了解涉及服务和健康检查的移动部件:agent和catalog,是非常重要的。通过概念上的描述它们可以更容易的理解anti-entropy。
Agent
每个Consul agent维护它自己的服务集合以及检查注册和健康信息。agent负责执行自己的健康检查和更新本地状态。
代理上下文中的服务和检查有非常丰富的配置集合。这是因为agent负责生产它的服务信息和通过健康检查生产的健康信息。
Catalog
Consul的服务发现基于一个服务目录。这个目录是通过聚合agents提交的信息形成的。目录维护了集群的高级视图,它包括哪些服务可用,哪些节点允许这些服务,健康信息等等。目录是用来展示这些信息的,可以通过各种Consul提供的接口,包含DNS和HTTP。
与agent相比,目录上下文中的服务和检查的字段更为有限。这是因为目录只服务于记录和返回关于服务,节点和健康的信息。
只有server节点维护目录。这是因为目录是通过Raft日志复制来提供一个统一的和一直的集群视图。