針對後台TCP服務F5健康檢查配置

2022-01-26 07:33:16 字數 1073 閱讀 7670

1、tcp-half-open方式

tcp-half-open的探測方式,實際是f5每隔乙個固定的時間,傳送乙個syn包給資源池pool中的乙個member,等待伺服器返回syn_ack,在收到syn_ack後,f5會使用rst,將該連線重置。

若f5在發出syn包後,超過規定的時間仍未收到syn_ack,則認為這個member不可用,不再向這個member分配應用流量。

f5缺省內置了乙個tcp-half-open的monitor,具體配置介面如下:

從圖中可以看到預設的,tcp_half_open的健康檢查方式,探測間隔為5秒,超時時間為16秒。

下面來看一下具體的資料報:

在f5上抓包,利用wireshark對抓包檔案進行過濾,192.168.92.7為f5的self ip,192.168.92.11為健康檢查目標伺服器。

通過time 列可以看出,每隔約5秒鐘,f5發起一次健康檢查,f5傳送syn包與伺服器建立tcp連線,伺服器響應syn包,同時伺服器tcp狀態變為syn_rcvd,回覆syn_ack報文,f5在收到syn_ack後,向member伺服器傳送rst包,將該鏈結重置,伺服器收到rst包後,tcp狀態重新變為listen狀態。

f5內建的monitor中,還有乙個tcp monitor,他與tcp_half_open的區別,主要是tcp monitor是通過傳送fin包的方式,正常中斷連線的。tcp_half_open相對於tcp的方式,傳送包的數量更少。但是由於採用rst的方式中斷連線,可能會出現問題(目前還沒有碰到),需要前期進行測試。

需要注意的是:

tcp_half_open和tcp這種健康檢查方式,只能判斷目標伺服器的tcp埠是否處於listen狀態,判斷目標伺服器是否有建立tcp連線的能力,不能完全用來判斷應用的可用性。

這種方式是最通用的健康檢查方式,目前也是業界通用的,不需要業務系統關注的方式。

tcp握手過程

LINUX核心引數,針對TCP協議優化

程序可以同時開啟的最大控制代碼數,限制最大併發連線數 fs.file max 999999 允許time wait狀態的socket重新用於新的tcp連線 net.ipv4.tcp tw reuse 1 當keepalive啟用時,tcp傳送keepalive訊息的頻度,預設是2個小時。設定小些,可...

http服務呼叫tcp服務

參考 現在有了乙個http服務,還有乙個tars的tcp服務,如何用http服務裡呼叫tcp服務呢?將tars服務的tcpserver.tars 複製到 http服務的tars目錄裡 在http服務裡建立 tars tarsclient.proto.php created by phpstorm.u...

後台服務小點

很多東西本來就存在,只是自己不懂,記錄在此,以便日後複習唄。今天碰到乙個問題就是專案中的靜態頁面是分開的,比如當面部落格頁面,它的頭是單獨的乙個html檔案,而下來的內容又是另外乙個,從專案本身以及在布置到伺服器上都沒有發現拼裝過程,於是好奇之,這是為啥呢,原來nginx早已具有這樣的功能,就是ss...