Spring Cloud健康檢查的陷阱

2021-08-28 03:48:05 字數 754 閱讀 8304

基於spring boot actuator的健康檢查是spring cloud微服務的必備元件,用來確保我們的服務是否可用。 引入 spring boot actuator後,通過http://ip:port/health ,可以看到 healthendpoint 給我們提供預設的監控結果,包含磁碟檢測和資料庫檢測。如下

,

"db":

}

有一天呼叫方突然反饋調不通我們的服務。檢視eureka控制台,發現服務狀態是up。檢視服務程序一切正常。束手無策之際,忽然想到會不會是健康檢查在作怪,因為eureka client判斷服務可用與否的依據就是健康檢查。而spring boot actuator所有的監控項中的任何乙個健康狀態是down,那個整體應用的健康狀態也是down,這時候呼叫方就把服務當作不可用。

再次檢視http://ip:port/health,果然發現有一項郵件健康檢查掛了。最近專案引入了spring-boot-starter-mail,實現傳送郵件的功能。郵箱伺服器掛了,造成整個服務的監控檢查狀態是down。

,

"diskspace": ,

"hystrix":

}

由於郵件傳送不是核心功能,可以把非核心元件從健康檢查中排除,避免造成整個服務不可用。通過如下配置關閉郵箱健康檢查。

management.health

.mail

.enabled=false

lvs mysql健康檢查 lvs 健康檢查方式

一 tcp 4層檢查 virtual server 192.168.2.213 80 delay loop 6 lb algo wlc 採取權重式最少鏈結分配 lb kind dr 採取dr模式 protocol tcp real server 192.168.2.220 80 tcp check ...

Nginx被動健康檢查和主動健康檢查

1.被動健康檢查 nginx自帶有健康檢查模組 ngx http upstream module,可以做到基本的健康檢查,配置如下 upstream cluster server nginx只有當有訪問時後,才發起對後端節點探測。如果本次請求中,節點正好出現故障,nginx依然將請求轉交給故障的節點...

應用健康檢查

我們的應用是都是走自動化指令碼發布的,當發布完成後,通常的做法可能是直接看發布日誌是否有報錯,但這需要人工去操作,所以我們寫了乙個健康檢查的頁面,在發布完成後用指令碼去訪問這個健康頁面,看是否能正常訪問,從而確定應用是否正常啟動。servlet private static final long s...