Bonjour ELL Jones
D’après ce que vous décrivez, le comportement est cohérent avec le paramètre consumer_timeout de RabbitMQ. Lorsque le délai configuré est dépassé avant que le consommateur n’envoie l’acknowledgment, RabbitMQ peut considérer le consommateur comme bloqué et fermer le canal concerné. Pour corriger cela, je vous recommande de vérifier la valeur actuelle de consumer_timeout et de l’augmenter progressivement afin qu’elle soit adaptée au temps réel de traitement de vos messages.
Si certains traitements sont particulièrement longs, il est également utile d’analyser pourquoi l’ack est retardé et, lorsque cela est possible, d’optimiser le traitement ou de découper les opérations les plus coûteuses. Une autre bonne pratique consiste à surveiller les temps de consommation afin d’identifier les pics ou les cas exceptionnels qui déclenchent le dépassement du délai. Après modification du paramètre, effectuez quelques tests en conditions proches de la production pour valider que les canaux restent ouverts et que les messages sont correctement acquittés.
En résumé, le problème semble davantage lié à un délai de traitement supérieur à la valeur configurée qu’à un dysfonctionnement du broker lui-même. L’ajustement de consumer_timeout à une valeur alignée sur vos besoins métier devrait permettre de réduire ou d’éliminer ces fermetures de canal.