着信メッセージを rabbitmq 交換に発行するマルチスレッド アプリケーションがあります。rabbitmq Java クライアントを使用して、アプリケーションの起動時に単一の rabbitmq 接続を作成し、それをすべてのスレッドで共有します。各スレッドは新しいチャネル (threadlocal) を作成するため、rabbitmq のドキュメントで推奨されているようにチャネルが複数のスレッド間で共有されることはありません。netty を使用していますが、netty チャネル パイプライン スレッドと同じ数の rabbitmq チャネルが作成されています。ここまでは順調ですね。
ただし、netty スレッドではキープアライブ時間が 2 分間あります (これが必要であり、変更できません)。したがって、スレッドが 2 分間アイドル状態になると、スレッドは終了します。ただし、スレッドに関連付けられているチャネルは強制終了されず、接続が閉じるまでアイドル状態のままになります。したがって、IDLE で閉じられないチャネルのリストが増えています。ぶら下がっているチャネルの問題に対処するrabbitmqのドキュメントには何も見当たりませんでした。一定期間アイドル状態だったチャンネルを閉じる方法はありますか? そうでない場合、これを解決するための最良の代替手段は何ですか?