【发布时间】:2016-02-23 10:45:10
【问题描述】:
我使用 rabbitmq 作为代理,在我的不同应用程序之间分派请求和响应。当我面临来自rabbitmq的奇怪行为时。在处理 2500 到 3000 条记录后,它给了我这个异常。
com.rabbitmq.client.AlreadyClosedException: 连接已经 由于连接错误而关闭;原因:java.net.SocketException: 连接重置在 com.rabbitmq.client.impl.AMQChannel.ensureIsOpen(AMQChannel.java:195) ~[amqp-client-3.5.6.jar:na] 在 com.rabbitmq.client.impl.AMQChannel.transmit(AMQChannel.java:309) ~[amqp-client-3.5.6.jar:na]
当我尝试在消息之间以 2 秒延迟 的情况下运行我的客户端时,确实发生了这个问题。这是我试图发布消息的代码。
try {
byte[] e = jsonMessage.getBytes(RabbitConf.COMMUNICATION_ENCODING);
this.channel.basicPublish(exchangeType.name(), rountingKey.name(), (BasicProperties)null, e);
} catch (IOException var6) {
this.LOG.error("IOException when sending data to rabbit:", var6);
}
我正在为我的客户使用 amqp-client 3.6.0。 欢迎提出任何建议。
【问题讨论】:
-
感谢@Rupesh,但是我尝试了这个解决方案,但它也不起作用。
-
嗨,你找到解决这个问题的方法了吗?我面临与 RabbitMQ 3.6.6 相同的问题
-
我也面临同样的情况,你找到解决办法了吗?