Spring data rabbitmq @RabbitListener внезапно перестал принимать сообщения в очереди

Я использую выпуск spring boot 2.1.1 и spring-boot-starter-amqp, @@ RabbitListener перестал принимать сообщения, хотя работал нормально. Когда я перезапустил потребительский API, он начал нормально работать.

Также из пользовательского интерфейса управления он не показывает потребителей в этой очереди.

  1. Версия Java 1.8
  2. Кластер RabbitMQ 3.7.11 (3 узла)
  3. Kubernetes
  4. Нет исключений на стороне клиента java или сервера rabbitmq.
  5. Heartbeates и keepalive со значениями по умолчанию. Я попытался повторно синхронизировать очередь через rabbitmqctl, но он все еще не работал.

     @Component
      public class Receiver {
        Logger logger = Logger.getLogger(Receiver.class);
    
     @RabbitListener(queues="test")
     public void recievedMessage(String msg) {
    
     logger.info("Recieved Message: " + msg);
      }
     }
    

person Sayed Hamed    schedule 13.09.2019    source источник


Ответы (1)


Наиболее частой причиной подобных проблем является то, что поток контейнера «застревает» где-то в пользовательском коде - либо в слушателе, либо в коде, вызываемом слушателем; например тупик.

Первый шаг - сделать дамп потока в следующий раз, когда он увидит, что делают поток (ы) контейнера слушателя.

person Gary Russell    schedule 14.09.2019