marathon參考 9 健康檢查

2021-07-11 03:06:11 字數 1641 閱讀 9116

健康檢查是需要每個應用執行監控檢查任務的。

1.預設的健康檢查是延遲才能讓mesos知道任務的狀態是否健康。

2.marathon提供乙個任務資源的健康成員訪問的rest api介面。

如果http的響應在超時時間timeoutseconds內返回**在200到399之間,那麼健康檢查認為是健康的。如果任務失敗連續超過健康檢查規定的maxconsecutivefailures次數,這個任務將會被kill掉。

例項:

或者

,

"graceperiodseconds": 300

, "intervalseconds": 60

, "timeoutseconds": 20

, "maxconsecutivefailures": 3

}

首先你需要描述健康檢查的協議:

protocol(可選,預設為http):請求的協議有三種,分別是http/tcp/command

http/tcp健康檢查被marathon執行,因此當前marathon leader必須是可以訪問的。command健康檢查是通過在**服務上的mesos執行乙個類似的任務在本地執行的。

下面的配置項適合所有協議:

graceperiodseconds(可選,預設為300):健康檢查失敗在多少秒內被忽略,或者直到任務狀態變成健康。

intervalseconds(可選,預設60):健康檢查間隔時間

maxconsecutivefailures(可選,預設3):健康檢查連續失敗3次後,不健康的任務會被kill。如果這個值是0,即使健康檢查失敗,任務也不好被刪除。

timeoutseconds(可選,預設20):健康檢查請求沒有會的響應的時限。

對tcp/http健康檢查,port和portindex也許會使用到。如果沒有提供,portindex會被設定。如果提供了port,它會優先覆蓋所有的portindex選項。

portindex(可選,預設為0):這個應用的ports或portdefinitions陣列的索引。所以應用可能會使用隨機埠,例如[0,0,0],任務可能會使用$port1這個環境變數。

port(可選,沒有預設值):健康檢查額埠號。

下面的配置只適用於http健康檢查:

path(可選,預設為/):任務暴露乙個終端點用於健康檢查。例如:/path/to/health

ignorehttp1xx(可選,預設為false):忽略http狀態為100到199的資訊。如果這個http健康檢查返回這個狀態的資訊,結果被丟棄和任務的健康狀態保持不變。

應用的健康生命週期如下圖所示。

在圖中:

i表示請求例項數

r表示執行例項數

h表示健康例項數

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...