Skip to content

Consul

Consul 是 HashiCorp 开源的分布式服务网格与服务发现平台——它把「服务注册与发现」「健康检查」「键值存储」「多数据中心」与「Connect 服务网格(mTLS + Sidecar)」打包成一个用 Raft 做强一致的 Go 二进制。在微服务架构里,Consul 扮演「服务通讯录 + 健康巡检员 + 配置后端 + 安全代理」四重角色:服务启动时把自己注册进 Consul,调用方从 Consul 查到健康实例列表再发请求,Consul Agent 周期性探活把挂掉的实例摘掉,Connect 模式还能用 Sidecar 自动加 mTLS。理解 Consul,就理解了CP 型服务发现(强一致、Raft 选主)与Agent 反向健康检查(服务被动被探)这套组合拳——这是它与 Nacos(AP 可选、主动上报)、etcd(纯 KV、不带健康检查语义)的核心分野。

Consul 的全部考点围绕四大功能展开:①服务发现(Agent 注册、DNS/HTTP 查询、Raft 强一致目录);②健康检查(HTTP/TCP/Script/Docker 探活、passing/warning/critical 三态、反向探 vs 主动报);③KV 存储(层级化键值、Watch 长轮询、lock 会话做领导选举);④Connect mesh(Sidecar/原生集成、Intentions 意图授权、mTLS 自动证书轮转)。本叶还覆盖架构拓扑(Server/Client Agent、WAN/LAN Gossip)、生命周期(Spring Cloud Consul 的 4 阶段接入)、以及与 Nacos/etcd 的横向对比(CP vs AP、带不带配置中心、生态阵营)。

评价

优点

  • 一站式:服务发现 + 健康检查 + KV + 多数据中心 + Connect mesh 一个二进制全包,不必拼凑 ZooKeeper + Config + Sidecar
  • 强一致:服务目录走 Raft,查询任意节点都拿到一致结果,适合「不能查到已死实例」的强一致场景
  • DNS 原生:直接用 myservice.service.consul 域名解析,非 JVM 语言、老应用零改造接入
  • 多数据中心原生:WAN Gossip 把多个 DC 互联,跨 DC 容灾开箱即用,不必自建联邦

缺点

  • 部署偏重:Server 节点建议 3/5 个 + 每节点一个 Agent,运维心智负担比 Nacos(单集群多用途)重
  • 无配置中心语义:KV 能存配置但没「分组/命名空间/灰度发布/回滚」原语,配置中心要自己拼或上 Consul-Config
  • Spring Cloud 中国生态弱:国内 Spring Cloud Alibaba(Nacos)是事实标准,Consul 文档/案例/支持远少于 Nacos
  • Connect 生态小众:Sidecar mesh 主流是 Istio/Linkerd,Consul Connect 在国内落地少、案例稀缺

本叶地图

  • 入门 —— Consul 定义、四大功能、Server/Client Agent 拓扑、Raft vs Gossip 分工、健康检查三态、生命周期
  • 服务发现与健康检查 —— Agent 注册、DNS/HTTP 查询、HTTP/TCP/Script 检查、KV 存储与 Watch、Connect mesh
  • 生态与对比 —— Spring Cloud Consul 四阶段生命周期、IBM SC-2 参考、与 Nacos/etcd/ZooKeeper 对比
  • 参考 —— 四大功能速查、健康检查类型表、API 清单、易错点、命令速查

幻灯片地址

Consul

测试题

Consul 测试题