天天看點

Spring Cloud 之 Consul 與 Consul 服務剔除

版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/bitree1/article/details/83270624

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)

截圖如下:

将不定期更新資源,歡迎持續關注

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