0

我有多个 RabbitMQ 服务器。

我需要一个接口(使用 JSP),我可以在其中管理(删除队列/交换/消息)所有这些服务器。

在内部,我将调用 curl 命令来执行操作。

示例:创建队列

curl -i -u test:test -H "content-type:application/json" \
    -XPUT -d'{"type":"direct","durable":true}' \
    http://192.168.0.30:15672/api/queues/%2f/myQueue

如何使用 curl 删除/移动队列中的消息?

4

3 回答 3

2

用卷曲创建的铲子可以完成工作:

curl 
-u  "user:password" 
-vvv 'http://localhost:15672/api/parameters/shovel/%2Foms/Move%20from%20sourceQueue' 
-X PUT 
-H 'content-type: application/json' 
--data-binary '
{
    "component": "shovel",
    "vhost": "/vhost",
    "name": "Move from sourceQueue",
    "value": {
        "src-uri": "amqp:///%2Fvhost",
        "src-queue": "sourceQueue",
        "src-protocol": "amqp091",
        "src-prefetch-count": 1000,
        "src-delete-after": "queue-length",
        "dest-protocol": "amqp091",
        "dest-uri": "amqp:///%2Fvhost",
        "dest-add-forward-headers": false,
        "ack-mode": "on-confirm",
        "dest-queue": "destQueue"
    }
}
' --compressed
于 2019-11-22T21:56:27.100 回答
1

我的问题的答案位于

https://groups.google.com/d/msg/rabbitmq-users/IS-3v4qNduw/oPseA7VxEgAJ

于 2015-08-19T11:25:31.543 回答
0

RabbitMQ 没有直接从队列中删除消息的概念。使用 RabbitMQ 时,有许多不同的方法可以从队列中“删除”或“移动”消息。您可以使用 REST api 使用这些选项中的每一个。您可以使用队列中的消息,也可以使队列中的消息过期。

从队列中消费消息非常简单,这里有一些例子。 要通过生存时间或队列大小使用到期,您可以设置 RabbitMQ 策略。RabbitMQ 策略的文档在这里。

于 2015-08-12T15:37:43.667 回答