普通软件包安装
首先cd /opt ,将安装包放到该目录下
- 下载consul安装包
进入consul官网找到自己开发平台对应的安装包下载 https://www.consul.io/downloads.html
或使用命令 wget https://releases.hashicorp.com/consul/1.6.2/consul_1.6.2_linux_amd64.zip
(如果提示-bash: wget: command not found,则yum install wget) - 下载完后,解压,得到一个可执行文件consul
unzip consul_1.6.2_linux_amd64.zip
(如果提示-bash: unzip: command not found,则yum install unzip) - 将这个文件移动到全局变量环境中
sudo mv consul /usr/local/bin/ - 验证是否安装成功
consul
(显示配置参数列表)
- 启动consul
1 2 |
普通单机启动:consul agent -dev -ui -node=consul-dev -client=本机IP地址(使用ctrl + z会退出,仅用于初次安装后的测试) 后台单机启动:nohup consul agent -dev -ui -node=consul-dev -client=127.0.0.1 >> /home/springboot/logs/consul.log 2>&1 & |
- 验证服务启动状态
在浏览器中输入: http://IP地址:8500/
- 启动问题及注意
- 查杀consul服务 ps -aux|grep consul , kill -9 进程ID
- 关闭防火墙:systemctl stop firewalld.service
永久关闭防火墙:systemctl disable firewalld.service - 观察日志:tail -f /home/springboot/logs/consul.log
- consul注册服务中如果Health Checks列出现红色叉号,说明服务出现问题,但未自动注销,这时可以使用postman发送put请求类型,进行强制手动线微服务实例:
http://ip:8500/v1/agent/service/deregister/服务实例ID
- 端口冲突时解决过程
1 2 3 |
==> Error starting agent: 2 errors occurred: * listen udp ****:8600: bind: cannot assign requested address * listen tcp ****:8600: bind: cannot assign requested address |
consul涉及端口
当端口冲突时,在/usr/local/bin下新建data.json文件,将以下端口更换为系统不冲突的端口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
{ "ports": { "http": 8500 , "dns": 8601, "grpc":8400, "serf_lan": 8301, "serf_wan": 8302, "server": 8300 } } |
再使用启动命令即可
1 |
nohup consul agent -server -bootstrap-expect 1 -data-dir ./ -advertise 127.0.0.1 -client 0.0.0.0 -ui -config-dir ./ >> /opt/logs/consul.log 2>&1 & |
- 停止Agent:
consul leave -http-addr=127.0.0.1:8500 #正常退出
consul force-leave -http-addr=127.0.0.1:8500 #强制退出
docker安装(非首选)
1 2 3 4 5 |
docker pull consul mkdir -p /data/consul docker run -d -p 8500:8500 -v /data/consul:/consul/data -e CONSUL_BIND_INTERFACE='eth0' --name=consul1 consul agent -server -bootstrap -ui -client='0.0.0.0' |