Consul是同ZooKeeper、Etcd等类似的服务发现和配置管理工具,简单的测试环境搭建比较简单。
1、到官网下载编译好的二进制文件,解压放到合适的目录
https://www.consul.io/downloads.html
2、牛刀小试,最简单的架构3个agent,其中2个server运行于模式,1个运行于client模式,2个server中有一个制定ui文件,就是consul的一个简单web管理页面。
1 | #node01该节点运行于server模式,指定了data和conf目录 |
单数据中心 ( hz ) 部署,bootstrap-expect指定2个server模式的agent,-data-dir运行时的数据目录,-ui-dir指定ui文件目录,-node是节点名称,-dc是数据中心的名字。
详细的配置参数可以查看命令的帮助文档或看官服文档,3个节点的consul程序都运行在控制台模式下,正式环境可以用supervisord守护运行。
3、其它
如果一个server模式的节点退出后,重新启动加入集群 consul join 时如果报错:
1 | 2016/05/20 14:16:01 [ERR] agent: failed to sync remote state: No cluster leader |
这时查看该节点下的文件:/usr/local/consul/data/raft/peers.json
然后将已知server节点的信息["172.16.201.130:8300","172.16.201.129:8300"]
添加进去然后再次启动时加上 -rejoin参数即可。
consul默认端口说明
1 | consul01 |