简介:
Consul是一个分布式高可用的系统,一个发现和配置服务的工具。客户端可以利用它提供的API注册和发现服务,及监控检测功能实现服务的高可用。
作用:
维护不同环境下的项目配置
热更新配置
服务治理
特性:
通过
DNS
或者HTTP
应用程序能找到它所依赖的服务,方便进行服务注册使用Key/Value方式进行数据存储
支持开箱即用的多数据中心。用户不需要建立额外的抽象层来扩展业务
对服务进行定时健康检查,判断依据为响应码是否为200
架构
安装:
下载
wget https://releases.hashicorp.com/consul/1.5.2/consul_1.5.2_linux_amd64.zip
解压
unzip consul_1.5.2_linux_amd64.zip
移动
cp consul /usr/local/bin/
验证
consul
启动开发模式(快速启动一个单节点Consul,但是不能数据持久化,不能用于生产环境)
consul agent -dev
查看集群成员
consul members
查看最近历史日志
consul monitor
停止
gracefully或者forcefully
服务注册
- 提供服务定义注册服务
假设需要注册一个名称为test01,端口号为3010的服务
填入json数据:
{
"service":{
"name":"test01",
"tags":[
"",
""
],
"address":"127.0.0.1",
"port":3010,
"enable_tag_override": false,
"check":{
"deregisterCriticalServiceAfter":"90m",
"http":"http://127.0.0.1:3010/health",
"interval":"10s"
}
}
}
名词解释:
tags:服务的tag,自定义,可以根据这个tag来区分同一个服务名的服务
address:服务注册到consul的IP,服务发现,发现的就是这个IP
port:服务注册consul的PORT,发现的就是这个PORT
enable_tag_override:标签是否允许覆盖
http:指定健康检查的URL,调用后只要返回20X,consul都认为是健康的
interval:健康检查间隔时间,每隔10s,调用一次健康检查的URL
关掉consul服务
重启Agent
consul agent -dev -config-dir /etc/consul.d/
我这里实际上没有真正的test01服务,所以后面的健康检查报connection refused