生产环境有段时间打印了如下错误
com.rabbitmq.client.AlreadyClosedException: channel is already closed due to channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no exchange 'TEMPORARY.SYSTEM.LOGIN.LOGGING' in vhost '/', class-id=60, method-id=40) at com.rabbitmq.client.impl.AMQChannel.ensureIsOpen(AMQChannel.java:209) at com.rabbitmq.client.impl.AMQChannel.transmit(AMQChannel.java:338) at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:686) at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:668) at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:658) at com.rabbitmq.client.impl.recovery.AutorecoveringChannel.basicPublish(AutorecoveringChannel.java:192)
经过测试,发现出现错误的时间点刚好是消费服务关了,消费服务关闭时会删除exchange。