RabbitMQ消息服务水平

2024-04-28 00:09:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用pythonapi将消息插入RabbitMQ,然后使用goapi从RabbitMQ获取消息。在

键1:RabbitMQ ACK因性能原因设置为false。在

我通过python api将大约100000000条消息插入RabbitMQ,但是当我使用goapi来获取 消息,我发现消息的插入数不等于get数字。那个插入操作和

获取操作是并发的。在

键2:消息丢失率不超过1000000%1。在

插入操作有日志,python api显示所有插入消息都成功。在

Get操作有日志,GOAPI显示所有Get消息都成功。 但是数字不相等。在

问题1:我不知道如何找到消息的位置迷路了。可能有人给我一个建议如何找到丢失的信息?在

问题2:是否有任何策略确保信息不丢失?在


Tags: api信息false消息pythonapigetrabbitmq原因
1条回答
网友
1楼 · 发布于 2024-04-28 00:09:11

为了让您测试是否发布了所有邮件,您可以这样做:

  1. 停止消费者。在
  2. 在发布服务器中启用确认。在python中,您可以通过在代码中添加额外的行来实现这一点:channel.confirm_delivery()。如果消息已发布,则基本上将返回一个布尔值。或者您可能希望在basic_publish中使用mandatory标志。在
  3. 想发多少就发多少。在
  4. 确保所有basic_publish()方法都返回True。在
  5. 计算Rabbit中的消息数。在
  6. 通过执行no_ack = False在使用者中启用Ack
  7. 消耗所有消息。在

这会让你知道你的信息在哪里丢失。在

相关问题 更多 >