1. 程式人生 > 其它 >刪除Eureka註冊中心的服務

刪除Eureka註冊中心的服務

參考:
如何刪除Eureka服務中心已經註冊的服務
eureka註冊中心刪除服務與狀態變更
Eureka中已註冊的服務下線三種方式

  1. 刪除Eureka註冊中心的服務

    起因:Eureka的自我保護機制

    預設情況下,如果 Eureka Server 在一定的 90s 內沒有接收到某個微服務例項的心跳,會登出該例項。但是在微服務架構下服務之間通常都是跨程序呼叫,網路通訊往往會面臨著各種問題,比如微服務狀態正常,網路分割槽故障,導致此例項被登出。

    固定時間內大量例項被登出,可能會嚴重威脅整個微服務架構的可用性。為了解決這個問題,Eureka 開發了自我保護機制,那麼什麼是自我保護機制呢?

    Eureka Server 在執行期間會去統計心跳失敗比例在 15 分鐘之內是否低於 85%,如果低於 85%,Eureka Server 即會進入自我保護機制。

    Eureka Server 進入自我保護機制,會出現以下幾種情況:
    (1) Eureka 不再從註冊列表中移除因為長時間沒收到心跳而應該過期的服務
    (2) Eureka 仍然能夠接受新服務的註冊和查詢請求,但是不會被同步到其它節點上(即保證當前節點依然可用)
    (3) 當網路穩定時,當前例項新的註冊資訊會被同步到其它節點中

    Eureka 自我保護機制是為了防止誤殺服務而提供的一個機制。當個別客戶端出現心跳失聯時,則認為是客戶端的問題,剔除掉客戶端;當 Eureka 捕獲到大量的心跳失敗時,則認為可能是網路問題,進入自我保護機制;當客戶端心跳恢復時,Eureka 會自動退出自我保護機制。

    如果在保護期內剛好這個服務提供者非正常下線了,此時服務消費者就會拿到一個無效的服務例項,即會呼叫失敗。對於這個問題需要服務消費者端要有一些容錯機制,如重試,斷路器等

    。(關於自我保護部分配置我上面的配置檔案已經說明)

    操作:在pm中操作:

    (DELETE)http://${server}:${port}/eureka/apps/${serviceName}/${instanceId}