Answers:
您应该启用管理插件。
rabbitmq-plugins enable rabbitmq_management
看这里:
http://www.rabbitmq.com/plugins.html
这里是管理的细节。
http://www.rabbitmq.com/management.html
最后,一旦完成设置,您将需要按照以下说明安装和使用Rabbitmqadmin工具。可以用来与系统完全交互。 http://www.rabbitmq.com/management-cli.html
例如:
rabbitmqadmin get queue=<QueueName> requeue=false
将给您第一条消息。
requeue=false
操作rabbitmqadmin get queue=<QueueName>
这是我用来获取队列内容的命令:
使用https://www.rabbitmq.com/management-cli.html在Fedora linux上的RabbitMQ版本3.1.5
这是我的交流:
eric@dev ~ $ sudo python rabbitmqadmin list exchanges
+-------+--------------------+---------+-------------+---------+----------+
| vhost | name | type | auto_delete | durable | internal |
+-------+--------------------+---------+-------------+---------+----------+
| / | | direct | False | True | False |
| / | kowalski | topic | False | True | False |
+-------+--------------------+---------+-------------+---------+----------+
这是我的队列:
eric@dev ~ $ sudo python rabbitmqadmin list queues
+-------+----------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------------+--------+---------+
| vhost | name | auto_delete | consumers | durable | exclusive_consumer_tag | idle_since | memory | messages | messages_ready | messages_unacknowledged | node | policy | status |
+-------+----------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------------+--------+---------+
| / | myqueue | False | 0 | True | | 2014-09-10 13:32:18 | 13760 | 0 | 0 | 0 |rabbit@ip-11-1-52-125| | running |
+-------+----------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------------+--------+---------+
将一些物品塞入myqueue:
curl -i -u guest:guest http://localhost:15672/api/exchanges/%2f/kowalski/publish -d '{"properties":{},"routing_key":"abcxyz","payload":"foobar","payload_encoding":"string"}'
HTTP/1.1 200 OK
Server: MochiWeb/1.1 WebMachine/1.10.0 (never breaks eye contact)
Date: Wed, 10 Sep 2014 17:46:59 GMT
content-type: application/json
Content-Length: 15
Cache-Control: no-cache
{"routed":true}
RabbitMQ在队列中查看消息:
eric@dev ~ $ sudo python rabbitmqadmin get queue=myqueue requeue=true count=10
+-------------+----------+---------------+---------------------------------------+---------------+------------------+------------+-------------+
| routing_key | exchange | message_count | payload | payload_bytes | payload_encoding | properties | redelivered |
+-------------+----------+---------------+---------------------------------------+---------------+------------------+------------+-------------+
| abcxyz | kowalski | 10 | foobar | 6 | string | | True |
| abcxyz | kowalski | 9 | {'testdata':'test'} | 19 | string | | True |
| abcxyz | kowalski | 8 | {'mykey':'myvalue'} | 19 | string | | True |
| abcxyz | kowalski | 7 | {'mykey':'myvalue'} | 19 | string | | True |
+-------------+----------+---------------+---------------------------------------+---------------+------------------+------------+-------------+
sudo python rabbitmqadmin get queue=myqueue requeue=true count=10
从末尾查看消息或使消息出队,然后将它们重新排队到最前面的命令。有没有一种方法可以仅查看消息而不是使消息出队。
rabbitmqadmin
所连接到基于Web的API,是须藤需要在这里?
requeue=True
我写了Rabbitmq-dump-queue,它允许将消息从RabbitMQ队列转储到本地文件,并按其原始顺序重新排列消息。
用法示例(转储queue的前50条消息incoming_1
):
rabbitmq-dump-queue -url="amqp://user:password@rabbitmq.example.com:5672/" -queue=incoming_1 -max-messages=50 -output-dir=/tmp
您可以使用RabbitMQ API获取计数或消息:
/api/queues/vhost/name/get
从队列中获取消息。(这不是HTTP GET,因为它将更改队列的状态。)您应该发布一个类似于以下内容的正文:
{"count":5,"requeue":true,"encoding":"auto","truncate":50000}
count控制要获取的最大邮件数。如果队列无法立即提供消息,则收到的消息可能少于此。
requeue确定是否从队列中删除消息。如果requeue为true,则将重新排队-但将设置其重新传递的标志。编码必须为“自动”(在这种情况下,如果有效载荷为有效UTF-8,则有效载荷将作为字符串返回,否则将以base64编码)或“ base64”(在这种情况下,有效载荷将始终为base64编码)。如果存在截断,则如果消息有效负载大于给定的大小(以字节为单位),它将截断消息有效负载。截断是可选的;所有其他键都是必需的。
请注意,HTTP API中的publish / get路径用于注入测试消息,诊断等-它们无法实现可靠的传递,因此应被视为sysadmin的工具,而不是用于消息传递的常规API。
http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_1_3/priv/www/api/index.html
有点晚了,但是是的,rabbitmq具有内置的跟踪器,可让您在日志中查看传入的消息。启用后,您可以tail -f /var/tmp/rabbitmq-tracing/.log
(在Mac上)观看消息。
详细说明在这里http://www.mikeobrien.net/blog/tracing-rabbitmq-messages