我使用Python api将消息插入RabbitMQ,然后使用go api从RabbitMQ获取消息。
密钥1 :由于性能原因,RabbitMQ ACK设置为false。
我通过python api向RabbitMQ插入大约100,000,000条消息,但是当我使用go api获取时 消息,我发现消息的插入号码不等于获取号码。插入动作和
获取行动是并发的。
密钥2 :丢失的消息率不超过1,000,000%1。
插入操作有log,python api显示所有插入的消息都成功。
获取操作有记录,去api显示所有获取消息都成功。 但数量并不相等。
问题1 :我不知道如何找到邮件丢失的地方。有人可以给我一个如何找到邮件丢失位置的建议吗?
问题2 :是否有任何策略可以确保信息不会丢失?
答案 0 :(得分:1)
为了测试您的所有消息是否已发布,您可以这样做:
channel.confirm_delivery()
。如果发布消息,这将基本返回一个布尔值。或者,您可以在mandatory
中使用basic_publish
标记。basic_publish()
方法都返回True。no_ack = False
这可以让您了解邮件丢失的位置。