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を妥当な正の値に設定する必要がありました。