我使用pika.SelectConnection()编写了一个消费者脚本,该脚本模拟了这个官方脚本: https://github.com/pika/pika/blob/master/examples/asynchronous_consumer_example.py
我在kubernetes上运行此使用者。 在开始的两三天内,它运行良好,两三天后,该连接静音,没有异常,也没有错误记录,但使用者ioloop仍然有效。我可以在使用者docker中看到TCP连接仍然处于打开状态。但是在断开的一侧,(我不确定连接是否关闭)在队列下,没有使用者,没有unack,消息无法被使用
环境:
pika 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'已通过身份验证并被授予访问权限托管“ 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'已通过身份验证并被授予访问权限托管“ 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'已通过身份验证并被授予访问权限托管“ 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>连接<0.6934.31>(192.168.133.160:37226-> 192.168.133.3:5672):用户'perfee'已通过身份验证并被授予访问权限托管“ 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 [警告] lager_file_backend在最后一秒内丢弃了2条消息,超过了50条消息/秒的限制