RabbitMQ铲掉丢失的消息(尝试模拟网络问题)

时间:2015-12-25 10:56:51

标签: rabbitmq rabbitmq-shovel

我正在使用RabbitQM服务器构建集群。我使用铲子插件从一个rabbitmq到另一个(不同的机器)提供消息

工作正常。但我想测试服务器之间没有网络连接时的行为方式。

在每台服务器上我都有本地队列。我将消息推送给它,然后铲子向远程rabbitmq队列发送消息

模拟我做的网络问题

iptables -D OUTPUT -d xx.xx.xx.xx -j DROP

禁用与远程服务器xx.xx.xx.xx的连接

然后我将消息推送到本地队列,它从队列中消失但不在远程服务器上! 怎么会这样?铲除是否在从队列中删除消息之前检查远程队列是否可用?

如何使其正常工作?我希望铲子不会从q队列中删除消息,直到确保将其传送到远程队列。

1 个答案:

答案 0 :(得分:1)

我找到了解决问题的方法。 我改变了铲子的设置。 有选项

ask_mode,on_publish

我改为

ask_mode, on_confirm

它开始正常工作。