Consul使用先進的方式來維護服務和健康信息。本文詳細描述服務和檢查如何註冊,目錄如何生成和健康信息改變時如何更新。html
首先了解涉及服務和健康檢查的移動部件:agent和catalog,是很是重要的。經過概念上的描述它們能夠更容易的理解anti-entropy。代理
每一個Consul agent維護它本身的服務集合以及檢查註冊和健康信息。agent負責執行本身的健康檢查和更新本地狀態。日誌
代理上下文中的服務和檢查有很是豐富的配置集合。這是由於agent負責生產它的服務信息和經過健康檢查生產的健康信息。component
Consul的服務發現基於一個服務目錄。這個目錄是經過聚合agents提交的信息造成的。目錄維護了集羣的高級視圖,它包括哪些服務可用,哪些節點容許這些服務,健康信息等等。目錄是用來展現這些信息的,能夠經過各類Consul提供的接口,包含DNS和HTTP。server
與agent相比,目錄上下文中的服務和檢查的字段更爲有限。這是由於目錄只服務於記錄和返回關於服務,節點和健康的信息。htm
只有server節點維護目錄。這是由於目錄是經過Raft日誌複製來提供一個統一的和一直的集羣視圖。接口