我的應用程序後會失去連接到RabbitMQ的服務器,我在日誌中看到RabbitMQ:重新連接後爲什麼不重新打開頻道?
ERROR ... o.s.a.r.c.CachingConnectionFactory : Channel shutdown: connection error
然後當我的應用程序重新連接到RabbitMQ的服務器,我在日誌中看到
INFO ... Created new connection: [email protected] [delegate=amqp://******]
但是當應用程序重新連接到RabbitMQ服務器,通道不會重新打開,在RabbitMQ管理控制檯中,我可以在'Channels'選項卡中看到沒有任何通道。
在重新連接後的RabbitMQ服務器日誌:
=INFO REPORT==== 13-Jul-2017::10:33:39 ===
accepting AMQP connection (*.*.*.*:* -> *.*.*.*:5672)
=INFO REPORT==== 13-Jul-2017::10:33:39 ===
Connection (*.*.*.*:* -> *.*.*.*:5672) has
a client-provided name: rabbitConnectionFactory#1
=INFO REPORT==== 13-Jul-2017::10:33:39 ===
connection (*.*.*.*:* -> *.*.*.*:5672 -
rabbitConnectionFactory#1): user '***' authenticated and granted access to vhost '***'
我使用Spring 1.5.3引導和彈簧引導起動AMQP
它看起來像Spring AMQP 1.7禁用的RabbitMQ客戶端的「enableAutomaticRecovery」,並使用它自己的恢復機制
的4.0.x的客戶端能夠自動恢復默認;在與此功能兼容的同時,Spring AMQP具有自己的恢復機制,通常不需要客戶端恢復功能。建議禁用AMQP客戶端的自動恢復功能,以避免收到AutoRecoverConnectionNotCurrentlyOpenException■當經紀人是可用的,但連接尚未恢復。從版本1.7.1開始,Spring AMQP將禁用它,除非您顯式創建自己的RabbitMQ連接工廠並將其提供給CachingConnectionFactory。由RabbitConnectionFactoryBean創建的RabbitMQ ConnectionFactory實例也將默認禁用該選項。
我不知道這有什麼關係的問題。
需要注意的是,如果我關閉我的應用程序並重新啓動它,它的行爲如預期。