SpringCloud服務如何在Eureka安全優雅的下線

如果直接KILL SpringCloud的服務,因爲Eureka採用心跳的機制來上下線服務,會導致服務消費者調用此已經kill的服務提供者然後出錯,處理這種情況有2中方案。

一、利用Spring Boot Actuato的管理端點(推薦

1、pom中引用Actuato

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

2、properties中添加如下內容

#啓用shutdown
endpoints.shutdown.enabled=true
#禁用密碼驗證
endpoints.shutdown.sensitive=false

如果只允許本機訪問,可以添加如下屬性

#(只允許本機訪問)
server.address=localhost

3、在服務器上利用curl發送shutdown命令

curl -X POST http://localhost:8080/shutdown

或者

curl -d "" http://localhost:8080/shutdown

 

二、利用Eureka的rest管理端點下線服務

eureka界面註冊的服務:

 

 發送DELETE的Restfull請求

對照關係看上面的2張圖。

 注意:由於cloud服務是心跳檢測,所有在eureka進行DELETE後要快速的停止服務,否則服務可能會被重新註冊上。

發佈了61 篇原創文章 · 獲贊 35 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章