
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为主节点。

开发模式启动后,可以使用http://127.0.0.1:8500/ui访问Consul的UI页面,页面中提供了在Consul注册中心内注册的其他节点和服务信息。Consul启动后的管理页面如图2-1所示。

图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可以指向到其他服务器上,集群中各节点状态的效果如下。

此时输出了当前节点信息,包括Consul正在运行的地址、健康状态、在集群中的角色及版本信息。使用HTTP API给Consul发送请求时,也会返回相应的状态信息如下。

除HTTP API外,DNS接口也可用来查询节点,在命令行中输入节点名称localhost.localdomain,利用members命令查询信息如下。

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命令的常用配置参数及释义

2.2.5 HTTP API
表2-2所列的是Consul中常见的HTTP API。
表2-2 Consul中常见的HTTP API
