一、安装 install
https://www.consul.io/downloads.html 下载对应的压缩包,解压后,添加到环境变量
二、运行 run
consul agent -dev
三、添加services
1.创建consul配置文件目录,mkdir /etc/consul.d(.d表示该目录下有很多配置文件)
2.echo '{"service": {"name": "web", "tags": ["rails"], "port": 80}}' | tee /etc/consul.d/web.json
3.consul agent -dev -config-dir=/etc/consul.d
四、创建集群 cluster
1.准备two node
2.node1:
consul agent -server -bootstrap-expect=1 \
-data-dir=/tmp/consul -node=agent-one -bind=172.20.20.10 \
-enable-script-checks=true -config-dir=/etc/consul.d
node2:
consul agent -data-dir=/tmp/consul -node=agent-two \
-bind=172.20.20.11 -enable-script-checks=true -config-dir=/etc/consul.d
3.在node1上执行consul join 172.20.20.11
4.consul members查看集群成员
备注:在配置文件中添加参数 -retry-join ip 在启动时auto-join
五、健康检查healthy check
1.在node2上:
echo '{"check": {"name": "ping",
"script": "ping -c1 google.com >/dev/null", "interval": "30s"}}' \
>/etc/consul.d/ping.json
echo '{"service": {"name": "web", "tags": ["rails"], "port": 80,
"check": {"script": "curl localhost >/dev/null 2>&1", "interval": "10s"}}}' \
>/etc/consul.d/web.json
2.重新启动node2的consul
3.执行curl http://localhost:8500/v1/health/state/critical 查看健康状态
六、K/V 键值[https://www.consul.io/docs/commands/kv.html]
consul支持http api和 consul client 进行K/V操作
1.添加: consul kv put [-flags=xx] key value
consul支持64位整数的flags表示kv的metadata
2.查询: consul kv get [-deatiled] key
3.查询所有的key: consul kv get -recurse
4.删除key: consul kv delete key
5.前缀匹配删除: consul kv delete -recurse key-prefix
6.CAS,KV的metadata中的modify-index,每次修改都会改变
consul kv put -cas -modify-value=xxx key value
(当key的modifyValue=xxx时,才进行update)
七、ui
consul agent -ui
访问 http:localhost:8500/ui