consul
- 单机版 - linux
- 下载:wget https://releases.hashicorp.com/consul/1.3.0/consul_1.3.0_linux_amd64.zip
- style="line-height: 24px;">解压:unzip consul_1.3.0_linux_amd64.zip -d /usr/local
- 添加环境变量 vi /etc/profile
- export CONSUL_HOME=/usr/local/bin/consul
- export PATH=$PATH:CONSUL_HOME
- 退出保存, source /etc/profile 使修改生效
- 验证: consul version,显示版本
- 如下,则正常
- 如下,则正常
- 开发端口或者关闭防火墙
- 让防火墙开放端口;
- 可以使用firewall-cmd --zone=public --add-port=8500/tcp --permanent,然后firewall-cmd --reload 使其生效;
- 也可以用iptables,vi /etc/sysconfig/iptables,添加 A INPUT -m state –state NEW -m tcp -p tcp –dport 8500 -j ACCEPT,保存退出,重启 service iptables restart
- 让防火墙开放端口;
- 启动:
- 如果,你只是用consul单机作为服务,开启服务端即可;
- 启动服务端:
- consul agent -server -client=0.0.0.0 -bind=192.168.1.4 -bootstrap-expect=3 -bootstrap -ui -data-dir=/usr/local/consuldata -node=consul_study > /dev/null 2>&1 &
- > /dev/null 2>&1 & 表示把该命令设置为后台启动,防止终端关闭,consul退出,也可以不加
- -node 表示节点在web ui中显示的名称
- -data-dir 表示指定数据的存放目录(该目录必须存在)
- -bootstrap-expect=3 表示server集群最低节点数为3,低于这个值将工作不正常(注:类似zookeeper一样,通常集群数为奇数,方便选举,consul采用的是raft算法)
- -client 指定客户端访问的ip(consul有丰富的api接口,这里的客户端指浏览器或调用方),0.0.0.0表示不限客户端ip
- -bind 表示绑定到哪个ip(有些服务器会绑定多块网卡,可以通过bind参数强制指定绑定的ip),就是consul 运行的机器,作为服务器
- -server 表示以服务端身份启动
- 开启客户端:
- 如果只是作为单机使用,可以不开启
- consul agent -client=0.0.0.0 -data-dir=/data/application/consul_data/ -node=client1 -ui > /dev/null 2>&1 &
- 验证开启是否成功:
- http://192.168.1.4:8500/,显示如下,则开启成功
- http://192.168.1.4:8500/,显示如下,则开启成功
- 如果开启失败,首先验证你的服务是否可以访问:
- 验证端口是否开放: 默认端口为8500
- 在windows 下,命令行中,使用telnet xxxx 8500
- 显示,如下,则正常
- 在windows 下,命令行中,使用telnet xxxx 8500
- 验证端口是否开放: 默认端口为8500
- 总结问题:
- 一、服务注册不成功,如下
- 使用http://192.168.1.4:8500/v1/agent/checks,查看原因
- 楼主,是在虚拟机centos下安装consul,windows下运行项目,Output 中的地址是 本地ipv4的地址,我绑定的consul的服务端的地址是192.168.1.4,通过桥连接,主机可以访问虚拟机,但是虚拟机无法访问主机,所以报错连接超时。
- 需要注意的是: 运行项目的地址,必须和consul服务端的地址是可以互相访问的。
- 使用http://192.168.1.4:8500/v1/agent/checks,查看原因
- 二、删除服务的问题
- 不可用服务如下:
- 进入详情,获取服务id
- 在consul ,服务下,运行如下命令: (xxxx-9181为服务id)
- curl --request PUT http://127.0.0.1:8500/v1/agent/service/deregister/xxxx-9181
- 不可用服务如下:
- 一、服务注册不成功,如下