CPing/CPong 是我們使用小型測試封包來檢查後端連線狀態的概念。JK 可以直接在建立新的後端連線 (連線模式) 之後以及在將每個要求傳送至後端 (前置模式) 之前直接使用此類測試封包。從 1.2.27 版開始,當連線閒置很長一段時間時,也可以使用它 (間隔模式)。可以設定 CPong 回答 CPing 的最大等待時間 (超時) 和間隔模式中的閒置時間。
後端將以最少的處理資源需求非常快速地回答測試封包。正面的回答告訴我們,可以存取後端,並且後端正在主動處理要求。它無法偵測是否已部署並執行某些內容。CPing/CPong 的好處是快速偵測到與後端的通訊問題。缺點是會稍微增加延遲時間。
工作者屬性 ping_mode 可設定為字元的組合,用於判斷在哪些情況下使用測試封包
- C:連線模式,逾時 ping_timeout 會被 connect_timeout 覆寫
- P:前置後置模式,逾時 ping_timeout 會被 prepost_timeout 覆寫
- I:間隔模式,逾時 ping_timeout,閒置時間 connection_ping_interval
- A:所有模式
多個值必須串接,且沒有任何分隔字元。我們建議使用所有 CPing 測試。如果您的應用程式對延遲非常敏感,則應該只使用連線和間隔模式的組合。
透過 ping_mode 啟用 CPing 探測已新增至版本 1.2.27。對於較舊的版本,僅存在連線和前置後置模式,且必須透過明確設定 connect_timeout 和 prepost_timeout 來啟用。
工作者屬性 ping_timeout 設定所有模式的 CPong 預設等待逾時(毫秒)。預設值為「10000」毫秒。只有在您透過 ping_mode 啟用 CPing/Cpong 探測時,才會使用此值。除非您遇到非常長的 Java 垃圾回收暫停,否則預設值應該沒問題。根據您的網路延遲和穩定性,良好的自訂值通常介於 5000 到 15000 毫秒之間。您可以使用 connect_timeout 和 prepost_timeout 覆寫用於連線和前置後置模式的逾時。請記住:不要使用極小的值。
工作者屬性 connect_timeout 設定連線建立期間 CPong 的等待逾時(毫秒)。如果您要覆寫使用 ping_timeout 設定的一般逾時,可以使用此屬性。若要使用連線模式 CPing,您需要透過 ping_mode 啟用它。由於 JK 通常使用持續連線,因此開啟新連線是一個罕見的事件。因此,我們建議啟用連線模式。根據您的網路延遲和穩定性,良好的值通常介於 5000 到 15000 毫秒之間。請記住:不要使用極小的值。
工作者屬性 prepost_timeout 設定請求轉發之前 CPong 的等待逾時(毫秒)。如果您要覆寫使用 ping_timeout 設定的一般逾時,可以使用此屬性。若要使用前置後置模式 CPing,您需要透過 ping_mode 啟用它。啟用這種類型的 CPing/CPong 會為每個請求增加一點延遲。通常這點延遲很小,而 CPing/CPong 的好處更為重要。因此,我們通常也建議使用 prepost_timeout。根據您的網路延遲和穩定性,良好的值通常介於 5000 到 10000 毫秒之間。請記住:不要使用極小的值。
在版本 1.2.27 之前,ping_mode 和 ping_timeout 不存在,若要啟用連線或前置後置模式 CPing,您必須將 connect_timeout 分別設定為 prepost_timeout 為某個合理的正值。