微服務系列1 - Spring Cloud 之 Consul 與 Consul 服務剔除

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)

截圖如下:

 

關注

如果有問題,請在下方評論

想獲得更多的學習知識請關注微信公衆號:西北碼農或掃下方二維碼


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章