【问题标题】:RabbitMQ - How to find out the Queue mode (default or lazy)RabbitMQ - 如何找出队列模式(默认或惰性)
【发布时间】:2018-11-22 15:06:22
【问题描述】:

问题很简单,在 RabbitMQ 中,如何找出队列模式(默认或惰性)。

我已经尝试过文档和实验:

  1. Rabbitmqctl
  2. Rabbitmq 管理插件
  3. HTTP API
  4. 用于 nodeJs 的 AMQPLib

我知道如何使用策略进行设置,我只是想知道队列的当前模式当模式在声明时设置并且不是通过策略

【问题讨论】:

    标签: rabbitmq


    【解决方案1】:

    您可以使用 HTTP API 来执行此操作: 例如具有所有属性的队列列表:

    curl  -u guest:guest 'localhost:15672/api/queues'
    

    你必须找到:

    "mode": "lazy"
    

    "arguments": {
                "x-queue-mode": "lazy"
            },
    

    就这么简单:

    curl  -u guest:guest \
        'localhost:15672/api/queues' | python -m json.tool | grep '"mode": "lazy"' -A 50 -B 10
    

    curl  -u guest:guest \
        'localhost:15672/api/queues' | python -m json.tool | grep '"x-queue-mode"' -A 80 -B 3
    

    或使用某种语言来做到这一点。

    【讨论】:

    • 它现在被称为 mode,显然是在 rabbitmq 3.7.8 中,因为它从您提到的 api 返回。这有帮助,谢谢!
    • 你是对的!谢谢指出!,我更新了答案
    【解决方案2】:

    使用管理插件,我创建了具有惰性模式的新队列:

    然后可以看到模式设置好了:

    错了吗?

    【讨论】:

    • 没错,但正如我在问题中提到的,我可以看到何时通过策略应用它,但在创建队列时却看不到。我想看看我的代码是否正常工作,所以即使我可以看到它在default 模式下运行,而不是lazy,正如我所期望的那样它会解决问题。不过,感谢您抽出时间提供帮助。
    • 你有没有使用 Rabbitmq 管理插件然后使用 http api 获取其他数据?在这两种情况下,我都会看到“x-queue-mode”属性。您说您对 4 种方式中的任何一种都感兴趣 :)。
    • 不,我说我试过了,但找不到任何东西,这就是我告诉你的那句话:“我知道如何使用策略来设置它,我只是想知道当前当模式在声明时而不是通过策略设置时,队列的模式。"
    • 通过 Rabbitmq 管理插件创建队列意味着通过策略创建?
    • 你是对的,我误读了你的答案,但在我的情况下,从控制台创建队列不是一个选项。但是,是的,我最初误读了您的答案。
    猜你喜欢
    • 2022-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-08
    • 2012-05-14
    • 1970-01-01
    相关资源
    最近更新 更多