好的阿杰 👍
我帮你写一个《Consul 简易上手指南》,适合快速入门。内容会涵盖 概念、安装、基础使用、常见命令和简单应用场景


Consul 简易上手指南

1. Consul 是什么?

Consul 是 HashiCorp 出品的 服务发现与配置管理工具,主要功能包括:

  • 服务发现:自动注册和发现服务(类似于服务目录)。
  • 健康检查:实时监控服务是否可用。
  • KV 存储:提供简单的分布式 Key-Value 存储。
  • 多数据中心支持:原生支持跨数据中心。
  • DNS 和 HTTP API:通过 DNS 或 API 查询服务。

常见对比:

  • 和 ZooKeeperetcd 类似,Consul 更偏向服务注册与发现;
  • 和 Nacos、Eureka 类似,但 Consul 更轻量且原生支持多数据中心。

2. 环境准备

建议 Linux/Mac 系统(Windows 也支持)。

  1. 下载 Consulwget https://releases.hashicorp.com/consul/1.19.1/consul_1.19.1_linux_amd64.zip unzip consul_1.19.1_linux_amd64.zip sudo mv consul /usr/local/bin/ consul --version
  2. 验证安装consul --help

3. 启动单机 Consul

开发模式(推荐入门)

consul agent -dev

默认开启 Web UI(http://127.0.0.1:8500)

生产模式(示例)

# 启动 server 节点
consul agent -server -bootstrap-expect=1 -data-dir=/tmp/consul -node=server1 -bind=127.0.0.1 -ui

# 启动 client 节点
consul agent -data-dir=/tmp/consul-client -node=client1 -bind=127.0.0.1 -join=127.0.0.1


4. 常见功能与命令

4.1 服务注册

创建一个 web.json

{
  "service": {
    "name": "web",
    "tags": ["v1"],
    "port": 8080,
    "check": {
      "http": "http://localhost:8080/health",
      "interval": "10s"
    }
  }
}

注册服务:

consul services register web.json

查询服务:

consul catalog services
consul catalog nodes


4.2 KV 存储

存值:

consul kv put config/db_host 127.0.0.1

取值:

consul kv get config/db_host

列出:

consul kv list


4.3 健康检查

consul members        # 查看集群节点
consul health checks  # 查看健康检查结果


4.4 DNS 方式发现服务

Consul 内置 DNS 服务,启动后可直接用:

dig @127.0.0.1 -p 8600 web.service.consul


5. Web UI

默认地址:
👉 http://127.0.0.1:8500
可以在界面里看到 服务、节点、KV、健康检查


6. 应用场景

  1. 微服务注册与发现(替代 Eureka/Nacos)
  2. 服务健康检查(自动剔除异常节点)
  3. 动态配置管理(基于 KV 存储)
  4. 多数据中心服务通信

7. 常见问题

  • 端口占用
    Consul 默认端口:
    • 8500:HTTP API / Web UI
    • 8600:DNS
    • 8300-8302:RPC & 集群通信
  • 生产部署
    • 至少 3-5 个 server 节点
    • 其余为 client 节点
    • 配置 ACL 进行权限控制

✅ 到这里,你就能跑起来一个最小化 Consul 集群并完成服务注册与发现。