Java “弹簧靴得到”;第二';频道开放';见;与rabbitmq连接时出错
我有一个spring boot应用程序,使用spring boot版本Java “弹簧靴得到”;第二';频道开放';见;与rabbitmq连接时出错,java,spring-boot,spring-amqp,spring-rabbit,amqp-client,Java,Spring Boot,Spring Amqp,Spring Rabbit,Amqp Client,我有一个spring boot应用程序,使用spring boot版本1.5.16.RELEASE,它将以下依赖项添加到我的应用程序中: [INFO] | +- com.rabbitmq:http-client:jar:1.0.0.RELEASE:compile [INFO] | +- org.springframework.amqp:spring-rabbit:jar:1.7.10.RELEASE:compile [INFO] | | +- org.springframework.am
1.5.16.RELEASE
,它将以下依赖项添加到我的应用程序中:
[INFO] | +- com.rabbitmq:http-client:jar:1.0.0.RELEASE:compile
[INFO] | +- org.springframework.amqp:spring-rabbit:jar:1.7.10.RELEASE:compile
[INFO] | | +- org.springframework.amqp:spring-amqp:jar:1.7.10.RELEASE:compile
[INFO] | | \- com.rabbitmq:amqp-client:jar:4.8.1:compile
[INFO] +- org.springframework.boot:spring-boot-starter-amqp:jar:1.5.16.RELEASE:compile
该应用程序还使用rabbitmq服务器3.6.6
作为消息代理
我很少注意到我的申请中出现以下错误:
org.springframework.amqp.AmqpIOException:java.io.IOException
位于org.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException(RabbitExceptionTranslator.java:71)
位于org.springframework.amqp.rabbit.connection.SimpleConnection.createChannel(SimpleConnection.java:67)
位于org.springframework.amqp.rabbit.connection.CachingConnectionFactory$ChannelCachingConnectionProxy.createBareChannel(CachingConnectionFactory.java:1208)
位于org.springframework.amqp.rabbit.connection.CachingConnectionFactory$ChannelCachingConnectionProxy.access$200(CachingConnectionFactory.java:1197)
位于org.springframework.amqp.rabbit.connection.CachingConnectionFactory.doCreateBareChannel(CachingConnectionFactory.java:562)
位于org.springframework.amqp.rabbit.connection.CachingConnectionFactory.createBareChannel(CachingConnectionFactory.java:545)
位于org.springframework.amqp.rabbit.connection.CachingConnectionFactory.getCachedChannelProxy(CachingConnectionFactory.java:515)
位于org.springframework.amqp.rabbit.connection.CachingConnectionFactory.getChannel(CachingConnectionFactory.java:497)
访问org.springframework.amqp.rabbit.connection.CachingConnectionFactory.access$1300(CachingConnectionFactory.java:102)
位于org.springframework.amqp.rabbit.connection.CachingConnectionFactory$ChannelCachingConnectionProxy.createChannel(CachingConnectionFactory.java:1213)
位于org.springframework.amqp.rabbit.core.rabbitmplate.doExecute(rabbitmplate.java:1443)
位于org.springframework.amqp.rabbit.core.rabbitmplate.execute(rabbitmplate.java:1419)
位于org.springframework.amqp.rabbit.core.rabbitmplate.send(rabbitmplate.java:713)
位于org.springframework.amqp.rabbit.core.rabbitmplate.send(rabbitmplate.java:707)
...
位于org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:899)
位于org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:790)
位于org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.access$001(SimpleMessageListenerContainer.java:105)
位于org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$1.invokeListener(SimpleMessageListenerContainer.java:208)
位于org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.invokeListener(SimpleMessageListenerContainer.java:1381)
位于org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.executeListener(AbstractMessageListenerContainer.java:760)
位于org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.doReceiveAndExecute(SimpleMessageListenerContainer.java:1324)
位于org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.receiveAndExecute(SimpleMessageListenerContainer.java:1294)
在org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.access$1800(SimpleMessageListenerContainer.java:105)
位于org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1550)
运行(Thread.java:745)
原因:java.io.IOException:null
位于com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:124)
位于com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:120)
位于com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:142)
位于com.rabbitmq.client.impl.ChannelN.open(ChannelN.java:136)
位于com.rabbitmq.client.impl.ChannelManager.createChannel(ChannelManager.java:176)
位于com.rabbitmq.client.impl.AMQConnection.createChannel(AMQConnection.java:559)
位于org.springframework.amqp.rabbit.connection.SimpleConnection.createChannel(SimpleConnection.java:56)
... 省略了43个公共帧
原因:com.rabbitmq.client.ShutdownSignalException:连接错误;协议方法:#方法(回复代码=504,回复文本=CHANNEL_ERROR-第二个'CHANNEL.open'可见,类id=20,方法id=10)
位于com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66)
位于com.rabbitmq.utility.BlockingValueOrException.UnterruptibleGetValue(BlockingValueOrException.java:36)
在com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:443)
位于com.rabbitmq.client.impl.AMQChannel.privatepc(AMQChannel.java:263)
位于com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:136)
... 省略47个公共框架
应用程序从上的某个队列使用RabbitMQ,使用50个并发使用者。此外,应用程序在两个节点(服务器)上运行,使用相同的队列,每个节点有50个使用者
上述错误很少出现。为了解释我的意思,我有上述应用程序的大约30个实例(60台服务器),每个实例每秒接收100个请求的通信量(从RabbitMQ消耗的事件),其中大多数产生指向RabbitMQ的传出事件,如上面堆栈跟踪中的示例。错误出现的频率为每月3-4次(在所有应用程序实例中,而不是在每个实例中)