rabbitmq系列问题解决:406, “PRECONDITION_FAILED - inequivalent arg ‘durable‘

这篇具有很好参考价值的文章主要介绍了rabbitmq系列问题解决:406, “PRECONDITION_FAILED - inequivalent arg ‘durable‘。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. 安装rabbitmq,查看官网文档: https://www.rabbitmq.com/#getstarted

  由于我是先安装了rabbitmq后自己随手创建了queue,后面又按照官方给的"hello world"例子去测试,结果发生了“406, "PRECONDITION_FAILED - inequivalent arg 'durable'” 这个错误信息。

  1. 先在管理页面创建的queue

  

rabbitmq系列问题解决:406, “PRECONDITION_FAILED - inequivalent arg ‘durable‘

2. 创建的exchanges

  

rabbitmq系列问题解决:406, “PRECONDITION_FAILED - inequivalent arg ‘durable‘

rabbitmq系列问题解决:406, “PRECONDITION_FAILED - inequivalent arg ‘durable‘

   上图中红线的 durable 是指是否持久化,可以看到我创建时设置的为true。

  3. 官方的hello world 例子:

             官网文档地址:https://www.rabbitmq.com/tutorials/tutorial-one-python.html

  代码(python版本):

   (生产者)

rabbitmq系列问题解决:406, “PRECONDITION_FAILED - inequivalent arg ‘durable‘

  (消费者)

rabbitmq系列问题解决:406, “PRECONDITION_FAILED - inequivalent arg ‘durable‘

  

但是当我运行上面的代码时,却报错:

  

rabbitmq系列问题解决:406, “PRECONDITION_FAILED - inequivalent arg ‘durable‘

   错误信息翻译过来大致意思就是:当前的queue的durable属性是true,但是我们声明queue时过去的参数确实是false.

 这个错误造成的原因是现在页面创建了queue和exchanges,但是代码中声明要使用的queue时,durable属性传递的是false.

 ok,那么代码怎么搞了? 可以从pyhton错误信息的中的堆栈部分找到返回错误的文件:File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pika/adapters/blocking_connection.py"

  那么找到这个文件,看看源码是什么情况:

  

rabbitmq系列问题解决:406, “PRECONDITION_FAILED - inequivalent arg ‘durable‘

   可以看出来,这个函数里默认durable为false,那么我们将自己的代码改造一下,设置durable为true.

  

rabbitmq系列问题解决:406, “PRECONDITION_FAILED - inequivalent arg ‘durable‘

 执行结果:

  

rabbitmq系列问题解决:406, “PRECONDITION_FAILED - inequivalent arg ‘durable‘

 可以看到是成功了的。

要注意的是,生产者和消费者对queue的声明函数里,这个durable必须保持一致。 文章来源地址https://www.toymoban.com/news/detail-465975.html

到了这里,关于rabbitmq系列问题解决:406, “PRECONDITION_FAILED - inequivalent arg ‘durable‘的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【RabbitMQ】RabbitMQ 消息的堆积问题 —— 使用惰性队列解决消息的堆积问题

    消息的堆积问题是指在消息队列系统中,当生产者以较快的速度发送消息,而消费者处理消息的速度较慢,导致消息在队列中积累并达到队列的存储上限。在这种情况下,最早被发送的消息可能会在队列中滞留较长时间,直到超过队列的容量上限。当队列已满且没有更多的可

    2024年02月05日
    浏览(49)
  • RabbitMQ常见问题以及实际问题解决

    ** ** 消息可靠性问题: 消息从生产者发送到Exchange,再到queue,再到消费者,有哪些导致消息丢失的可能性? 发送时丢失: - 生产者发送的消息为送达exchange - 消息到达exchange后未到达queue MQ宕机,queue将消息丢失 consumer接收到消息后未消费就宕机 ①生产者消息确认 RabbitMQ提供

    2024年02月16日
    浏览(45)
  • Rabbitmq消息积压问题如何解决?

    一、 增加处理能力         优化系统架构、增加服务器资源、采用负载均衡等手段,以提高系统的 处理能力和并发处理能力 。通过增加服务器数量或者优化代码,确保系统能够及时处理所有的消息。 二、 异步处理         将消息的处理过程设计为 异步执行 ,即接

    2024年02月12日
    浏览(44)
  • RabbitMQ(四) | 惰性队列 - 解决消息堆积问题

    接上一篇:RabbitMQ(三) | 死信交换机、死信队列、TTL、延迟队列(安装DelayExchange插件) 当生产者发送消息的速度超过了消费者处理消息的速度,就会导致队列中的消息堆积,直到队列存储消息达到上限。之后发送的消息就会成为死信,可能会被丢弃,这就是消息堆积问题。

    2024年02月01日
    浏览(38)
  • RabbitMQ消息可靠性问题及解决

    说明:在RabbitMQ消息传递过程中,有以下问题: 消息没发到交换机 消息没发到队列 MQ宕机,消息在队列中丢失 消息者接收到消息后,未能正常消费(程序报错),此时消息已在队列中移除 针对以上问题,提供以下解决方案: 消息确认:确认消息是否发送到交换机、队列;

    2024年02月16日
    浏览(44)
  • 解决安装 RabbitMQ 安装不成功的问题

    由于RabbitMQ是基于erlang的,所以,在正式安装RabbitMQ之前,需要先安装一下erlang。 1、下载mq https://www.rabbitmq.com/download.html 2、下载erlang(点击下载路径根据下载的MQ版本对应下载erl版本) https://www.erlang.org/downloads 3、erlang与MQ版本对应表 https://www.rabbitmq.com/which-erlang.html#intro 安装

    2024年02月07日
    浏览(33)
  • 如何解决RabbitMQ中的延迟消息问题

    首先我们要知道什么是死信? 当一个队列中的消息满足下列情况之一时,可以成为死信(dead letter): 消费者使用basic.reject或 basic.nack声明消费失败,并且消息的requeue参数设置为false。 消息是一个过期消息,超时无人消费。 要投递的队列消息堆积满了,最早的消息可能成为

    2024年02月14日
    浏览(47)
  • RabbitMQ常见问题及其解决方案

    目录 RabbitMQ如何保证顺序消费 RabbitMQ消息丢失及其解决方案 RabbitMQ如何保证顺序消费 RabbitMQ重复消费及其解决方案 RabbitMQ如何保证不重复消费 RabbitMQ消息积压及其解决方案 RabbitMQ如何实现分布式事务以及保障消息最终一致性 在 RabbitMQ 中实现顺序消费可以考虑以下方法: 单一

    2024年02月09日
    浏览(41)
  • RabbitMQ常见问题及解决方案

    目录 一、消息丢失 1、生产者重连 2、生产者确认 3、数据持久化 4、惰性队列 5、消费失败处理 二、消息重复 1、通过业务保证幂等性(优先) 2、通过消息状态去重保证幂等性 三、消息堆积 1、优化消费者处理逻辑 2、增加队列及消费者数量 3、使用惰性队列 四、保证消息顺

    2024年02月03日
    浏览(45)
  • RabbitMQ——解决分布式事务问题,RabbitMQ的重要作用之一!!!通过可靠生产和可靠消费来完美解决!

    分布式事务是指涉及多个独立的计算机系统(也称为节点或参与者)之间的事务处理。在分布式系统中,每个节点可能各自拥有自己的数据存储和事务管理机制。分布式事务的目标是保证在跨多个节点执行的一系列操作可以以一致和可靠的方式执行和提交,即使在面对故障或

    2024年04月23日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包