好的阿杰 👍
我帮你写一个《Consul 简易上手指南》,适合快速入门。内容会涵盖 概念、安装、基础使用、常见命令和简单应用场景。
Consul 简易上手指南
1. Consul 是什么?
Consul 是 HashiCorp 出品的 服务发现与配置管理工具,主要功能包括:
- 服务发现:自动注册和发现服务(类似于服务目录)。
- 健康检查:实时监控服务是否可用。
- KV 存储:提供简单的分布式 Key-Value 存储。
- 多数据中心支持:原生支持跨数据中心。
- DNS 和 HTTP API:通过 DNS 或 API 查询服务。
常见对比:
- 和 ZooKeeper、etcd 类似,Consul 更偏向服务注册与发现;
- 和 Nacos、Eureka 类似,但 Consul 更轻量且原生支持多数据中心。
2. 环境准备
建议 Linux/Mac 系统(Windows 也支持)。
- 下载 Consul
wget 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
- 验证安装
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. 应用场景
- 微服务注册与发现(替代 Eureka/Nacos)
- 服务健康检查(自动剔除异常节点)
- 动态配置管理(基于 KV 存储)
- 多数据中心服务通信
7. 常见问题
- 端口占用
Consul 默认端口:- 8500:HTTP API / Web UI
- 8600:DNS
- 8300-8302:RPC & 集群通信
- 生产部署
- 至少 3-5 个 server 节点
- 其余为 client 节点
- 配置 ACL 进行权限控制
✅ 到这里,你就能跑起来一个最小化 Consul 集群并完成服务注册与发现。
发表回复