eureka 的幾種主動下線服務的方式

2021-08-21 20:37:53 字數 921 閱讀 8008

由此猜想可以通過改介面下線服務, 於是嘗試了一下

果然能從註冊中心中移除該例項

1. 直接停掉服務。

預設情況下,如果eureka server在90秒沒有收到eureka客戶的續約,它會將例項從其登錄檔中刪除。但這種做法的不好之處在於, 客戶端已經停止了執行,但仍然在註冊中心的列表中。 雖然通過一定的負載均衡策略或使用熔斷器可以讓服務正常進行,但有沒有方法讓註冊中心馬上知道服務已經下線呢? 

2.為了讓註冊中心馬上知道服務要下線, 可以向eureka 註冊中心傳送delete 請求

下面是下線乙個hello-service的例子。 

下圖是用postman 傳送delete請求

值得注意的是,eureka客戶端每隔一段時間(預設30秒)會傳送一次心跳到註冊中心續約。如果通過這種方式下線了乙個服務,而沒有及時停掉的話,該服務很快又會回到服務列表中。

所以,可以先停掉服務,再傳送請求將其從列表中移除。

3. 客戶端主動通知註冊中心下線 

如果你的eureka客戶端是是乙個spring boot應用,可以通過呼叫以下**通知註冊中心下線。 

discoverymanager.getinstance().shutdowncomponent();

例子如下,

@restcontroller

public class hellocontroller

public void offline()   

}

Eureka 中服務下線的幾種方式

1 直接停掉服務 根據預設的策略,如果在一定的時間內,客戶端沒有向註冊中心傳送續約請求,那麼註冊中心就會將該例項從註冊中心移除,但是有缺陷,因為服務直接停掉後,例項仍然會在註冊中心存在一小段時間,也有可能註冊中心直接認為你的服務down掉,但是例項仍然存在於註冊中心 2 通過註冊中心介面強制下線 通...

Eureka 中服務下線的幾種方式

原文 eureka 中服務下線的幾種方式 1 直接停掉服務 根據預設的策略,如果在一定的時間內,客戶端沒有向註冊中心傳送續約請求,那麼註冊中心就會將該例項從註冊中心移除,但是有缺陷,因為服務直接停掉後,例項仍然會在註冊中心存在一小段時間,也有可能註冊中心直接認為你的服務down掉,但是例項仍然存在於...

EUREKA檢測服務是否下線

eureka微服務架構在生產環境部署會出現服務意外宕機的情況,根據eureka的服務註冊監聽可以實現對服務下線的監聽,通過騰信的簡訊介面傳送簡訊通知 可根據業務需要更改 服務註冊監聽 eventlistener condition event.replication false public voi...