CPing/CPongは、バックエンド接続の状態を確認するための小さなテストパケットを使用するための概念です。JKは、新しいバックエンド接続を確立した直後(接続モード)、および各リクエストがバックエンドに送信される直前(プリポストモード)に、このようなテストパケットを使用できます。バージョン1.2.27以降では、接続が長時間アイドル状態だった場合(インターバルモード)にも使用できます。CPingへのCPong応答の最大待機時間(タイムアウト)と、インターバルモードでのアイドル時間を設定できます。
テストパケットは、バックエンドによって非常に高速に、最小限の処理リソースで応答されます。肯定的な応答は、バックエンドに到達でき、リクエストをアクティブに処理していることを示します。コンテキストがデプロイされて動作しているかどうかは検出されません。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を適切な正の値に設定する必要がありました。