Consul 安装使用

安装部署

三种安装方法: 预编译版本, 源码安装, docker.

docker, 预编译版本安装最方便, 基于加密的下载, SHA256 的校验保证安全.

源码安装是需要 Golang, Git 的支持的.

运行

1
2
3
4
5
6
7
8
9
# 开启测试节点
consul agent -dev -node machine

# 查询节点
consul members
curl /v1/catalog/nodes

# 停止
consul leave

注册服务与健康检查

定义一个服务

在服务配置目录下的所有文件, 都会在启动时加载到 consul 中, 服务配置目录下支持多个文件, 每个文件定义一个服务, 基本格式如下:

1
2
3
4
5
6
7
8
9
10
11
{
"service": {
"name": "web",
"tags": ["express"],
"port": 80,
"check": {
"args": ["curl", "localhost"],
"interval": "10s"
}
}
}

该文件定义服务的 name 名字, port 端口, 以及可选的 tags, 用于后续服务的查询.

Note: 服务的注册这块, 暂时理解一般每个服务节点都要有一个 client 运行, 在 client 端定义该服务, 会自动的将其上报到 server 端.

参考: https://www.consul.io/docs/agent/services.html

DNS 查询一个服务

1
dig @127.0.0.1 -p 8600 [TAG.]SERVICE_NAME.service.consul

NOTE: 使用 DNS 查询, 需要给对应端口开启 udp 访问权限.

在这个示例中, 我们的 SERVICE_NAME 为 web.

HTTP 查询一个服务

查询所有服务:

1
curl 'http://127.0.0.1:8500/v1/catalog/service/SERVICE_NAME'

查询健康服务:

1
curl 'http://127.0.0.1:8500/v1/health/service/SERVICE_NAME?passing'
Donate - Support to make this site better.
捐助 - 支持我让我做得更好.