我使用rabbitmq作为代理,在不同的应用程序之间发送请求和响应。当我面对狂犬病的奇怪行为时。在处理2500至3000条记录后,它给了我这个例外。
连接:由于连接错误,连接已经关闭;原因: com.rabbitmq.client.impl.AMQChannel.ensureIsOpen(AMQChannel.java:195) ~amqp 3.5.6.jar:na在com.rabbitmq.client.impl.AMQChannel.transmit(AMQChannel.java:309) ~amqp 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);
}我使用3.6.0作为我的客户端.任何建议都将受到欢迎。
发布于 2017-02-07 12:07:35
您可以尝试使用qos值(尽管从文档中还不清楚这是否对发布端有影响):
this.channel.basicQos(1);见:http://www.rabbitmq.com/releases/rabbitmq-java-client/current-javadoc/com/rabbitmq/client/Channel.html#basicQos-int-。
https://stackoverflow.com/questions/35575331
复制相似问题