使用consul做服务发现
Consul是一款用Go开发的分布式服务协调管理的工具,它提供了服务发现,健康检查,Key/Value存储等功能,并且支持跨数据中心的功能。
这里用consul来做mysql主从的服务发现。
Consul-template是Consul的一个扩展工具,通过监听Consul中的数据可以动态修改一些配置文件。
这里用来动态生成haproxy的配置文件。
从官网下载consul和consul-template:
wget https://releases.hashicorp.com/consul/1.4.0/consul_1.4.0_linux_amd64.zip
wget https://releases.hashicorp.com/consul-template/0.19.5/consul-template_0.19.5_linux_amd64.tgz
#解压后每个程序就一个单独的执行文件,将其复制到/usr/bin下:
cp consul /usr/bin
cp consul-template /usr/bin
配置consul集群,三个节点都服务端工作模式,同时也做客户端使用:
mkdir /root/consul
cd /root/consul
#swarm1:
nohup consul agent -server -bootstrap-expect 2 -data-dir=./data/ -config-dir=./config/ -node=s1 \
-enable-script-checks=true -bind=172.16.0.90 -ui -client