Rabbitmq сбрасывает связь с потребителем, молчит, пока ioloop остается в живых - PullRequest
1 голос
/ 03 июня 2019

Я написал потребительский скрипт, используя pika.SelectConnection (), который имитирует этот официальный скрипт: https://github.com/pika/pika/blob/master/examples/asynchronous_consumer_example.py

Я использую этого потребителя в kubernetes. Он работает хорошо в первые два или три дня. Через два или три дня соединение отключилось, без исключения, без регистрации ошибок, но потребительский ioloop все еще жив. Я вижу, что TCP-соединение все еще включено в докере-получателе. Но со сломанной стороны (я не уверен, закрыто ли соединение) под очередью, нет ни потребителя, ни unack, и сообщение не может быть использовано. .

Окружающая среда:

Пика 1.0.1

rabbitmq 3.7.13

kubernetes v1.12.2

kazoo 2.6.1 (я не думаю, что это связано)

Я установил сердцебиение на 0, очередь и сообщение долговечны. Сообщения отправлялись не часто, очередь долгое время простаивала ,, но мой сценарий имеет стратегию переподключения.

В начале я попробовал pika.BlockingConnection (), у него та же проблема, затем я попробовал pika.SelectConnection (), как я уже говорил выше, он такой же. Я проверил журнал на сервере rabbitmq, ничего не помогло. Я понятия не имею, как найти проблему сейчас.

Вход на сервер rabbitmq:

2019-06-03 16: 59: 35.963 [info] <0.5980.31> принятие соединения AMQP <0.5980.31> (192.168.133.127:47622 -> 192.168.133.3:5672)

2019-06-03 16: 59: 35.968 [info] <0.5980.31> соединение <0.5980.31> (192.168.133.127:47622 -> 192.168.133.3:5672): пользователь "perfee" аутентифицирован и предоставлен доступ vhost 'perfee'

2019-06-03 16: 59: 51.369 [предупреждение] <0.5980.31> закрытие соединения AMQP <0.5980.31> (192.168.133.127:47622 -> 192.168.133.3:5672, vhost: 'perfee', пользователь : 'perfee'): клиент неожиданно закрыл TCP-соединение

2019-06-03 17: 03: 05.235 [info] <0.6216.31> принятие соединения AMQP <0.6216.31> (192.168.133.160:37214 -> 192.168.133.3:5672)

2019-06-03 17: 03: 05.255 [info] <0.6216.31> соединение <0.6216.31> (192.168.133.160:37214 -> 192.168.133.3:5672): пользователь "perfee" аутентифицирован и предоставлен доступ vhost 'perfee'

2019-06-03 17: 05: 22.626 [info] <0.6216.31> закрытие соединения AMQP <0.6216.31> (192.168.133.160:37214 -> 192.168.133.3:5672, vhost: 'perfee', пользователь : 'perfee')

2019-06-03 17: 06: 04.613 [info] <0.6420.31> принятие соединения AMQP <0.6420.31> (192.168.133.160:37220 -> 192.168.133.3:5672)

2019-06-03 17: 06: 04.635 [info] <0.6420.31> соединение <0.6420.31> (192.168.133.160:37220 -> 192.168.133.3:5672): пользователь "perfee" аутентифицирован и предоставлен доступ vhost 'perfee'

2019-06-03 17: 06: 06.444 [info] <0.6420.31> закрытие соединения AMQP <0.6420.31> (192.168.133.160:37220 -> 192.168.133.3:5672, vhost: 'perfee', пользователь : 'perfee')

2019-06-03 17: 14: 02.462 [info] <0.6934.31> принятие соединения AMQP <0.6934.31> (192.168.133.160:37226 -> 192.168.133.3:5672)

2019-06-03 17: 14: 02.478 [info] <0.6934.31> connection <0.6934.31> (192.168.133.160:37226 -> 192.168.133.3:5672): пользователь "perfee" прошел проверку подлинности и предоставил доступ vhost 'perfee'

2019-06-03 17: 16: 14.889 [info] <0.7103.31> принятие соединения AMQP <0.7103.31> (172.16.20.190:63064 -> 192.168.133.3:5672)

2019-06-03 17: 16: 15.013 [warning] lager_file_backend отбросил 2 сообщения в последнюю секунду, которые превысили ограничение в 50 сообщений / с

...