consul安装(单机)
1.下载consul zip包(地址),本人选择的是consul_1.3.0_linux_386.zip
这个版本
2.解压zip,并将解压后的consul拷贝到/usr/local/bin/
目录下方便使用
1 | unzip consul_1.3.0_linux_386.zip |
3.启动consul
1 | consul agent -dev |
1 | 2018/10/30 15:53:52 [DEBUG] agent: Using random ID "7e72c970-eb83-5d77-9d9b-9a1869632e9c" as node ID |
consul服务注册与服务查询
服务注册
2.1.1 创建一个存放服务文件的文件夹
1 | sudo mkdir /etc/consul.d #.d做后缀:表示一系列配置文件的存放目录(directory) |
2.1.2 创建服务并且写入存放服务的文件夹
1 | 一个服务是以json文件的格式 |
2.1.3 启动consul服务
1 | -config-dir表示要加载的配置文件的目录,Consul将使用后缀“.json”或“.hcl”加载此目录中的所有文件。 |
服务发现
DNS方式
1 | '{"service":{"name":"firstservice","tags":["dev"],"port":80}}' |
1 | ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> @127.0.0.1 -p 8600 dev.firstservice.service.consul |
HTTP方式
1 | 访问的路径:host:port/版本号/catalog/service/服务名 |
1 | [ |
服务检测
1 | 查询服务的健康状态 |
1 | [ |
consul集群部署
分别在三台机器上单独部署consul
1 | 已server的方式启动 -client 0.0.0.0使得客户端可以直接通过url访问服务端的consul ui |
1 | 此时日志显示未能选举出leader |
三台独立的consul服务启动后,发现其实agent-001和agent-002,agent-003三个彼此谁都不知道谁,需要执行相互join才能形成集群
1 | 分别在不同的机器上执行 |
1 | 成功完成选举 agent-003为leader |
检测信息
1 | consul members |
1 | 使用DNS方式访问 |
1 | ; (1 server found) |
consul ui界面
1 | 访问ui界面 |