服務發現和註冊----consul-01

consul - 幕布
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服務端的地址是可以互相訪問的。
      • 二、刪除服務的問題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章