consul服务注册及服务发现

上一章,我们搭建了一台server和一台client,本节将继续在此集群上进行consul的服务注册和服务查询,介绍如何通过配置文件定义服务并向 Consul 注册服务。

本节将涉及到service discovery的前两部分:

  • Register, 服务启动时的注册机制
  • Query, 查询已注册服务的机制
  • Healthy Check, 确认服务健康状态的机制

服务注册

上一节我们指定了consul的配置目录

image-20211017173715304

在该目录中新建 web.json 文件,用于定义服务。文件内容如下:

{
  "service": {
    "name": "web",
    "port": 80
  }
}

让consul重新加载配置:

consul reload

这样consul agent会将服务上报给server:

image-20211017174546601

访问consul的UI,发现除了默认的consul服务外,新增了web服务:

image-20211017174401876

基于DNS的服务查询

在server机器上,执行dig命令,成功

dig SERVER_IP -p 8600 web.service.consul 

image-20211017174654428

如果想查看服务所在的端口,可以加SRV参数

dig @SERVER-IP -p 8600 web.service.consul SRV

image-20211017174742492