使用java客户端QueueingConsumer我编写了以下代码来帮助消费者恢复
while (true) {
try{
.. create connection
.. create channel & queue
while (true) {
final QueueingConsumer.Delivery delivery = consumer.nextDelivery();
....
} catch {
handleException()
}
}
每次我重新启动兔子它都幸免于难,因为它从一开始就创建了连接 现在,我知道我应该使用DefaultConsumer 所以我有这个方法
public void handleDelivery(...) throws IOException {
}
我的问题是:
答案 0 :(得分:4)
您应该更新到Rabbit Java Client的3.3.0版。最后,他们增加了对重新连接和重新声明拓扑的支持。
您只需在设置ConnectionFactory
:
...
connectionFactory.setAutomaticRecoveryEnabled(true);
connectionFactory.setTopologyRecoveryEnabled(true);
...