微服務架構,為了保證所有服務可用,當服務發生問題時能及時摘除有問題的服務需要定期檢測服務可用性,即健康檢查。通常健康健康檢查包括tcp與http兩種。即定時傳送tcp或http請求,根據響應來確定服務是否可用。
一般通過tcp定期請求來判定網路層是否正常,而通過http請求判斷應用層是否正常。
http健康檢查檢查通常涉及如下幾個方面
服務要配置好請求介面,檢測服務定期向指定的介面傳送http請求,並根據介面響應碼和響應時間判斷。這個響應時間一般根據業務特性來配置。
發起檢測時每隔一定週期就需要檢測一次。可以是幾百毫秒或幾秒,實際情況根據業務來確定。當連續幾個週期內響應異常,那麼嘗試標記節點狀態為異常,並臨時摘除。當後續檢測正常後再加入的可用節點集合中。
為介面設定乙個超時時間,每個週期檢測時超過這個時間說明有異常。
實際檢測過程過關心的是節點是否可用,因此關注的是響應狀態,具體響應內容並不關心。可以通過http響應碼來判斷狀態。對於http檢測介面來說2xx和3xx可視為檢查正常。其它狀態碼認為節點異常。
當出現http連線異常等問題,那麼就直接可斷定節點不可用。
通過http健康檢查保證及時發現應用層問題,及時摘除異常節點,保證服務正常執行。
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...