netty(3.6.2.FINAL)とkeep-alive=trueで多くの接続を処理する方法について混乱しています。
サーバー側コネクタとしてnettyクライアントで作業し、別のサービスにhttp呼び出しを行う場合、パフォーマンスのために接続を常に開いたままにしておきます(keep-alive = true)。
問題:開いているチャネルの数には厳しい制限があり、その後、チャネルを開こうとするとクライアントがハングします。なぜ例外がハングしないのですか?これはチャネルタイムアウトに関する設定ですか?
ワーカースレッド内の接続の全体的な管理という観点から、Nettyを理解できないようです。
書き込み/読み取りクライアントのChannelHandler(http要求/応答)をブロックしている場合、接続プールが空であることをどのように検出しますか?
ハンドラーはChannelEventを受信できますが、接続プールで使用可能な全体の数については何もありません(とにかく非常に非決定的です)。また、チャネルが開いていない場合、ハンドラーがワーカースレッドで実行されていることを前提として、新しいチャネルを開き始めるのは理にかなっていますか?
- しかし、接続プールが使い果たされた場合、どのようにして(ハンドラー内の)アイドル状態の接続をクリーンアップしますか?