服务发现和注册----consul-01

consul
  • 单机版 - linux
    • 下载:wget https://releases.hashicorp.com/consul/1.3.0/consul_1.3.0_linux_amd64.zip
    • 解压: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 &
    • 验证开启是否成功:
    • 如果开启失败,首先验证你的服务是否可以访问:
      • 验证端口是否开放: 默认端口为8500
        • 在windows 下,命令行中,使用telnet xxxx 8500
        • 显示,如下,则正常
    • 总结问题:
      • 一、服务注册不成功,如下
        • 使用http://192.168.1.4:8500/v1/agent/checks,查看原因
        • 楼主,是在虚拟机centos下安装consul,windows下运行项目,Output 中的地址是 本地ipv4的地址,我绑定的consul的服务端的地址是192.168.1.4,通过桥连接,主机可以访问虚拟机,但是虚拟机无法访问主机,所以报错连接超时。
        • 需要注意的是: 运行项目的地址,必须和consul服务端的地址是可以互相访问的。
      • 二、删除服务的问题

猜你喜欢

转载自blog.csdn.net/wind1_rain/article/details/106975529