У меня есть многопоточное приложение, которое публикует входящие сообщения на обмен rabbitmq. Используя java-клиент rabbitmq, я создаю одно соединение rabbitmq при запуске приложения и делюсь им со всеми своими потоками. Каждый поток создает новый канал (threadlocal), чтобы каналы не использовались совместно несколькими потоками, как рекомендовано в документации rabbitmq. Я использую netty и вижу, что создается такое же количество каналов rabbitmq, что и потоков конвейера netty. Все идет нормально.
Тем не менее, у меня есть 2 минуты активности в моих потоках netty (мне это нужно, и я не могу его изменить). Итак, если поток простаивает в течение 2 минут, он умирает. Однако канал, связанный с потоком, не уничтожается и остается свободным до закрытия соединения. Таким образом, я получаю увеличивающийся список каналов, которые находятся в состоянии бездействия и никогда не закрываются. Я не нашел в документации rabbitmq ничего, что касалось бы зависших каналов. Есть ли способ закрыть канал, который какое-то время не использовался? Если нет, как лучше всего решить эту проблему?