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會在下文中具體介紹。