web-dev-qa-db-ja.com

GRPC接続:KeepAliveまたはIdleTimeoutを使用しますか?

GRPC Java DOC - ManagedChannelBuilder)は、接続を管理するための2つのオプションがあります。idletimeout()はデフォルト/優先設定です。しかし、比較を検索しようとしたとき投稿のキープアライブオプションについて話しています。

私は一般的な練習とは何ですか、そしてこれら2つのオプションの長所と短所は何ですか?

idletimeout

アイドルモードに移行する前に、RPCを進行させずに期間を設定してください。アイドルモードでは、チャネルはすべての接続、NameresolverとLoadBalancerをシャットダウンします。新しいRPCはアイドルモードからチャネルを取り除きます。チャネルはアイドルモードで始まります。デフォルトは30分です。

これはアドバイザリオプションです。このオプションに関連する特定の動作に依存しないでください。

KeepAliveWithOutCalls

接続に優れたRPCがない場合は、キープアライブが実行されるかどうかを設定します。デフォルトはfalseです。

このオプションを有効にする前に、クライアントはサービス所有者から許可を受ける必要があります。未使用の接続に関するキープアライブは、誤って誤ってかなりの量の帯域幅とCPUを消費する可能性があります。このオプションの代わりにIDLETIMEOUT()を一般的に使用する必要があります。

6
xialin

RPCが進行中の間は、接続の失敗に注意してください。 IDLETIMEOUTを使用してリソースを解放し、IDLE TCP]チャネルが未使用時に破損したことからの接続を解消しません。

iDLETIMEOUTは、システム内の全体的な負荷を減らす傾向があるため、keepAliveWithOutCallsよりも優先されます。 CalentAliveWithOutCallsは、クライアント、サーバー、およびネットワークリソースを非常に頻繁に頻繁になくなるために待ち時間を費やすことを望んでいる場合に使用されます。

3
Eric Anderson