![微服务分布式架构基础与实战:基于Spring Boot + Spring Cloud](https://wfqqreader-1252317822.image.myqcloud.com/cover/390/31186390/b_31186390.jpg)
2.2 Consul的常用命令
Consul注册中心是Linux系统中可直接运行的二进制文件,本节介绍Consul注册中心的常用命令。
2.2.1 consul agent-dev
consul agent-dev即开发模式启动,输入consul-dev可以在开发模式下启动Consul。Dev开发模式对于快速、方便地创建单节点Consul环境是非常有用的,但不能用于实际项目,因为Dev开发模式对任何状态信息都不能持久化。
consul agent-dev的启动日志如下,Consul已经启动并且输出了一些日志信息。其中,Node at 127.0.0.1:8300[Leader] entering Leader state信息是指在Dev开发模式下默认该Consul为主节点。
![](https://epubservercos.yuewen.com/C493B8/16896238005622406/epubprivate/OEBPS/Images/38413_51_1.jpg?sign=1739596508-e67ZyxgQDEMMEk7b6tgjxb8ne3mhsMSs-0-4097386fe896822b11a1ec79b950c807)
开发模式启动后,可以使用http://127.0.0.1:8500/ui访问Consul的UI页面,页面中提供了在Consul注册中心内注册的其他节点和服务信息。Consul启动后的管理页面如图2-1所示。
![](https://epubservercos.yuewen.com/C493B8/16896238005622406/epubprivate/OEBPS/Images/38413_51_2.jpg?sign=1739596508-EI3r403masvbu3rUEUKAqkVc7ZoPw3ss-0-62365745f6682ec8428aadd590a3a78a)
图2-1
2.2.2 consul-members
consul-members即列出成员信息,输入consul-members将会返回所有Consul节点中的成员信息。Dev开发模式启动下只有一个节点信息。
如果要查询的Consul节点在其他服务器上,也可以输入命令./consul members-http-addr=192.168.138.144:8500,-http-addr可以指向到其他服务器上,集群中各节点状态的效果如下。
![](https://epubservercos.yuewen.com/C493B8/16896238005622406/epubprivate/OEBPS/Images/38413_52_1.jpg?sign=1739596508-EbJE9xaN8FcKW7CosiW4owbUxCvbkY62-0-ec4721bad748c8b927b96dbd3ab42ded)
此时输出了当前节点信息,包括Consul正在运行的地址、健康状态、在集群中的角色及版本信息。使用HTTP API给Consul发送请求时,也会返回相应的状态信息如下。
![](https://epubservercos.yuewen.com/C493B8/16896238005622406/epubprivate/OEBPS/Images/38413_52_2.jpg?sign=1739596508-KXjt7wnivdtQjQ1YA1v1EWDqwbTjr384-0-822c78a8d623e3b4c92ee5c2d0bd0b09)
除HTTP API外,DNS接口也可用来查询节点,在命令行中输入节点名称localhost.localdomain,利用members命令查询信息如下。
![](https://epubservercos.yuewen.com/C493B8/16896238005622406/epubprivate/OEBPS/Images/38413_52_3.jpg?sign=1739596508-vrgWW8QJpMaoCU2reMi2UyUBj4DTaZ7m-0-a0efe1188d0dd97211a9f6c3f81d6e0c)
2.2.3 consul leave
consul leave即离开集群,在当前Consul加入某一个Consul集群时需使用-join命令;节点宕机后直接重启,也可以使用-rejoin命令。
在当前Consul离开集群时需使用consul leave命令。consul leave和Ctrl+C的区别在于,Ctrl+C是“优雅”停止代理后,该Consul仍然会在集群中进行注册,集群中的Server服务器会不断提醒用户,该Consul无法正常使用,导致该Consul变成服务注册上的“僵尸”,但consul leave会取消其在集群中的注册。
2.2.4 agent命令的常用配置参数
agent命令代表运行一个Consul agent实例,如consul agent-dev命令。agent命令的常用配置参数及释义如表2-1所示。
表2-1 agent命令的常用配置参数及释义
![](https://epubservercos.yuewen.com/C493B8/16896238005622406/epubprivate/OEBPS/Images/38413_53_2.jpg?sign=1739596508-MmYycgToOss5p12sGQ9abFgo1wBrty2M-0-b72ab2b50f4b72bdc11922e38c35911b)
2.2.5 HTTP API
表2-2所列的是Consul中常见的HTTP API。
表2-2 Consul中常见的HTTP API
![](https://epubservercos.yuewen.com/C493B8/16896238005622406/epubprivate/OEBPS/Images/38413_54_2.jpg?sign=1739596508-WtcPd87H7lXtO6hTmSNzcj83JsOPdAAF-0-5f65a2c10f73b8b821e47c3e96f093bc)