1.簡介
Consul有多個組件,但總體而言,它是基礎架構中的一款服務發現和配置的工具。 它提供了幾個關鍵功能:
(1)服務發現:Consul client 可以提供服務,例如api或mysql,也可以使用Consul client來發現指定服務的提供者。 使用DNS或HTTP,應用程序可以輕鬆找到他們所依賴的服務。
(2)健康檢查:Consul client 可以提供任何數量的健康檢查,或者與給定的服務(“Web服務器是否返回200 OK”),或與本地節點(“內存利用率是否低於90%”)相關聯。 可以使用此信息來監控集羣運行狀況,服務發現組件使用此信息將流量從有問題的主機中移除出去。
(3)KV Store:應用程序可以使用Consul的分層鍵/值存儲,包括動態配置,功能標記,協調,leader選舉等等。 簡單的HTTP API使其易於使用。
(4)多數據中心:Consul支持多個數據中心。 這意味着Consul的用戶不必擔心構建額外的抽象層以擴展到多個區域。
Consul旨在對DevOps社區和應用程序開發人員友好,使其成爲現代化,彈性基礎架構的完美選擇。
2.優點
consul由GO語言開發,是專門用來做服務發現的,具有服務註冊、服務必現、服務檢測、UI管理、命令管理、API管理、數據存儲等;且spring在此基礎上做了封裝,優先採用;
3.踩坑點
1)背景:使用springcloud項目久了,就發現了consul作爲註冊中心的一大缺點,不利於使用,踩了不少坑,註冊中心內的服務許手動刪除,不然歷史註冊的已停止服務的錯誤節點就影響使用,比如如下情況:
開啓springboot項目老是有個殭屍在,把所有java程序都關了還存在,可是壓根都沒起服務,更加沒設置過那種端口
還比如現在明明起了一個服務第一個,卻有好幾個服務在線,都是我的ip
進過深入研究發現 ----註冊中心內的服務許手動刪除
2)手動刪除方法:
刪除無效服務:
http://ip:8500/v1/agent/service/deregister/服務名稱
sic-user-9003 這種爲服務名稱
刪除無效節點:
http://ip:8500/v1/agent/force-leave/節點名
4b36b27317a0 這種爲節點名(也就是容器id)
截圖如下:
關注
如果有問題,請在下方評論
想獲得更多的學習知識請關注微信公衆號:西北碼農或掃下方二維碼