关键词:Spring Cloud Consul 服务注册 服务发现 分布式配置
在使用Spring Cloud Consul的必要前提,是运行Consul服务,这样才能够使用Spring Cloud Consul提供的相关功能。
(1)下载软件包
Consul软件包是一个zip压缩二进制文件,我们需要根据自己使用的操作系统下载对应的软件包文件。可以从Consul官网下载合适的软件包。官网提供了如下几种操作系统下的软件包:
我使用的是64位的Windows操作系统,因此下载的版本是64-bit。点击链接可直接下载。
(2)运行Consul
从官网下载下来的zip文件,如:consul_1.10.1_windows_amd64.zip。解压zip,得到consul.exe,其是Windows系统的可执行文件。
当我们双击consul.exe运行该可执行文件的时候,会看见有个黑窗口一闪而过。此时不要慌,执行consul.exe是需要在命令行运行的。
①打开cmd命令行窗口
WIN + R,然后输入cmd回车:
②进入到consul.exe所在的目录,我的是放在了D盘的consul文件夹下的。
使用命令:consul,该命令相当于consul --help。可以查看consul支持的命令行功能。(如果运行consul无法出现如图所示的列表内容,请检查软件包是否有问题)
③启动Consul服务
使用命令:consul agent -dev,以dev环境启动Consul客户端
从上面控制台输出的日志可以得到,Consul服务使用的通信协议是http,端口号默认为8500,访问地址为:127.0.0.1:8500,也就是localhost:8500。
既然Consul服务使用的是http协议,并且知道了服务地址为localhost:8500,在浏览器访问localhost:8500:
经过上面几个步骤,至此Consul服务启动成功。为了方便使用Consul提供的相关命令行命令,可以将Consul配置到环境变量中。
(3)查看consul服务列表
①使用命令:consul members,查看Consul数据中心的consul服务列表:
Node:节点名称,即服务名称。
Address:服务地址
Status:服务的健康状态
Type:服务的角色
因为我本地只启动了一个Consul服务,因此列表中就只有一条记录
②使用HTTP请求:http://localhost:8500/v1/agent/members,查看consul服务列表:
Consul提供的所有http接口都是/v1/xxxxx格式的。关于更多的http接口信息,可以戳Consul官网浏览。
(4)注册服务到consul(服务注册)
请求方式 | 接口地址 | 请求体格式 | 响应格式 |
PUT | /v1/agent/service/register | json | application/json |
请求体示例:
{
// 服务id
"ID": "myServerId",
// 服务名称
"Name": "myserverName",
"Tags": ["primary", "v1"],
// 服务地址
"Address": "127.0.0.1",
// 服务端口
"Port": 8888,
"Meta": {
"myServer_version": "4.0"
},
"EnableTagOverride": false,
"Weights": {
"Passing": 10,
"Warning": 1
}
}
(5)获取注册到consul中的服务列表(服务发现)
①获取服务列表
请求方式 | 接口地址 | 响应格式 |
GET | /v1/agent/services | application/json |
②获取某个服务的信息
请求方式 | 接口地址 | 响应格式 |
GET | /v1/agent/service/{service_id} | application/json |
service_id为服务的id。
③获取某个服务的健康状态
请求方式 | 接口地址 | 响应格式 |
GET | /v1/agent/health/service/name/{service_name} | application/json |
service_name为服务的名称。
(6)停止Consul
使用命令:consul leave
Consul服务输出的日志:
在Spring Cloud Consul中与Consul服务进行通信使用的是http请求,因此在学习Consul时,我们主要要学习Consul提供的http接口,这样利用Consul提供的http接口进行服务注册、服务发现等功能。
现在consul服务启动完成了,接下来我们就可以学习Spring Cloud Consul。
(更多的Consul使用感兴趣的同学可以戳官网查看)