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


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

 

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

 

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

 

1pom中引用Actuato

<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-actuator</artifactId>

</dependency>

 

2properties中添加如下內容

#啟用shutdown

endpoints.shutdown.enabled=true

#禁用密碼驗證

endpoints.shutdown.sensitive=false

 

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

#(只允許本機訪問服務,只能通過localhost127.0.0.1hostname訪問服務,不能通過ip訪問服務)

server.address=localhost

 

3、在任意一台服務器上利用curl發送shutdown命令

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

或者

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

 

 

二、利用Eurekarest管理端點下線服務

 

eureka界面注冊的服務:

 

 

發送DELETERestfull請求

 

 

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

 

 

優雅停止服務,當收到前面的指令后,服務會停止接受請求,如果服務正在處理請求,會等請求處理完成后在shutdown,驗證通過。通過優雅停止服務來實現流量切換后進行灰度發布。

 

參考:https://www.cnblogs.com/yangzhilong/p/7161941.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM