Openresty 健康檢查

2022-03-15 10:50:48 字數 1565 閱讀 8391

## 指定共享記憶體

lua_shared_dict healthcheck 1m;

## 在worker初始化過程中,啟動定時器,進行後端結點的檢查

init_worker_by_lua_block ,

-- 併發度, 預設值為 1

concurrency = 1

, }

ifnot ok then

ngx.log(ngx.err,

"*****==> failed to spawn health checker:

", err)

return

end }

# 配置監控檢查訪問頁面

location /server/status

}

配置引數解釋

hc.spawn_checker(options)

options中包含如下選項,在呼叫該介面時作為引數傳遞進來

type        必須存在並且是http,目前只支援http

http_req  必須存在,健康探測的http請求raw字串

timeout    預設1000,單位ms

interval    健康探測的時間間隔,單位ms, 預設1000,推薦2000

valid_status   合法響應碼的表,比如

concurrency   併發數,預設1

fall            預設5,對up的裝置,連續fall次失敗,認定為down

rise           預設2,對down的裝置,連續rise次成功,認定為up

shm       必須配置,用於健康檢查的共享記憶體名稱,通過ngx.shared[shm]得到共享記憶體

upstream   指定要做健康檢查的upstream組名,必須存在

version  預設0

primary_peers  主組

backup_peers  備組

statuses  存放合法響應碼的陣列,來自ipairs()得到的valid_status配置項

根據options會構造乙個ctx表來存放所有的配置資料,並會作為定時器ngx.timer.at()中的第三個引數

ctx的內容如下

upstream   指定的upstream組名

primary_peers 主組

backup_peers  備組

http_req  健康檢查的raw http請求

timeout  超時時間,單位s,注意不是ms

interval  健康檢查的間隔,單位s,注意不是ms

dict  存放統計資料的共享記憶體

fall   認為down之前的連續失敗次數,預設5

rise  認為up之前的連續成功次數,預設2

statuses  認為正常的http狀態碼的表

version    0 每次執行定時任務時的版本號,有peer狀態改變,版本號加1

concurrency    建立該數目的輕量執行緒來併發傳送健康檢測請求的個數

上面的這些配置項,將作為乙個上下文儲存下來,在不同的階段被反覆呼叫

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