Consul注册服务的方式有两种:
1.配置文件
2.API接口
当然作为微服务的注册中心,添加配置文件后,可以reload配置,不需要停机。
查询已经注册的服务有三种方式:
API查询
命令行查询
DNS查询
下面通过例子,演示相关操作。
我们通过配置文件注册一个服务。
按照约定,把配置文件放在/etc/consul.d中。
我们看到配置文件是JSON格式的。并且我们定义了名为student的服务,同时给服务添加了一个标签也叫student,端口为80。
为了方便快速阅读,JSON文件完整的格式参照文章结尾处。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCM581dvRWYoNHLwEzX5xCMx8FesU2cfdGLwATMfRHLGZkRGZkRfJ3bs92YskmNhVTYykVNQJVMRhXVEF1X0hXZ0xiNx8VZ6l2cssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLjlTN0gTYxMTNkVGM5gTZyU2YhFGMwI2YhZjYxQzYjVzLcBjMvwlMxcTMwIzLcd2bsJ2LcNXZnFWbp9CXt92Yu8GdjFTNuITavw1LcpDc0RHaiojIsJye.png)
consul会在DNS中为每个服务添加一条A记录,名称为serviceName.service.consul。如果服务有标签还会添加一个tag.serviceName.service.consul的记录。
含义:
名称
类型
含义
id
String
服务的唯一标识
name
tags
String数组
标签
address
地址,ip或hostname
port
int
端口号
enable_tag_override
bool
标签是否允许覆盖
checks
数组
检测服务是否可用
关于ckecks会在下文中具体介绍。