Có thể xem nội dung tin nhắn RabbitMQ trực tiếp từ dòng lệnh không?
sudo rabbitmqctl list_queues
liệt kê các hàng đợi.
Có lệnh nào như thế sudo rabbitmqctl list_queue_messages <queue_name>
không?
Có thể xem nội dung tin nhắn RabbitMQ trực tiếp từ dòng lệnh không?
sudo rabbitmqctl list_queues
liệt kê các hàng đợi.
Có lệnh nào như thế sudo rabbitmqctl list_queue_messages <queue_name>
không?
Câu trả lời:
Bạn nên bật plugin quản lý.
rabbitmq-plugins enable rabbitmq_management
Xem tại đây:
http://www.rabbitmq.com/plugins.html
Và đây để biết chi tiết cụ thể về quản lý.
http://www.rabbitmq.com/management.html
Cuối cùng sau khi thiết lập, bạn sẽ cần làm theo hướng dẫn bên dưới để cài đặt và sử dụng công cụ Rabbitmqadmin. Cái nào có thể được sử dụng để tương tác hoàn toàn với hệ thống. http://www.rabbitmq.com/management-cli.html
Ví dụ:
rabbitmqadmin get queue=<QueueName> requeue=false
sẽ cung cấp cho bạn tin nhắn đầu tiên trong hàng đợi.
requeue=false
bit và chỉ làmrabbitmqadmin get queue=<QueueName>
Đây là các lệnh tôi sử dụng để lấy nội dung của hàng đợi:
Phiên bản RabbitMQ 3.1.5 trên Fedora linux bằng https://www.rabbitmq.com/management-cli.html
Đây là những trao đổi của tôi:
eric@dev ~ $ sudo python rabbitmqadmin list exchanges
+-------+--------------------+---------+-------------+---------+----------+
| vhost | name | type | auto_delete | durable | internal |
+-------+--------------------+---------+-------------+---------+----------+
| / | | direct | False | True | False |
| / | kowalski | topic | False | True | False |
+-------+--------------------+---------+-------------+---------+----------+
Đây là hàng đợi của tôi:
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 |
+-------+----------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------------+--------+---------+
Đặt một số mục vào 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 xem các tin nhắn trong hàng đợi:
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
để xem thư hoặc xếp thứ tự các thư từ cuối rồi xếp lại hàng trước. Có cách nào để chỉ xem các tin nhắn thay vì deque de chúng.
rabbitmqadmin
kết nối với API dựa trên web, có cần sudo ở đây không?
requeue=True
Tôi đã viết Rabbitmq-dump-queue cho phép kết xuất các thư từ hàng đợi RabbitMQ vào các tệp cục bộ và sắp xếp lại các thư theo thứ tự ban đầu của chúng.
Cách sử dụng ví dụ (để kết xuất 50 thông báo đầu tiên của hàng đợi incoming_1
):
rabbitmq-dump-queue -url="amqp://user:password@rabbitmq.example.com:5672/" -queue=incoming_1 -max-messages=50 -output-dir=/tmp
bạn có thể sử dụng API RabbitMQ để nhận số lượng hoặc tin nhắn:
/api/queues/vhost/name/get
Nhận tin nhắn từ một hàng đợi. (Đây không phải là HTTP GET vì nó sẽ thay đổi trạng thái của hàng đợi.) Bạn nên đăng nội dung như sau:
{"count":5,"requeue":true,"encoding":"auto","truncate":50000}
đếm kiểm soát số lượng tin nhắn tối đa nhận được. Bạn có thể nhận được ít tin nhắn hơn mức này nếu hàng đợi không thể cung cấp chúng ngay lập tức.
requeue xác định liệu các thư có bị xóa khỏi hàng đợi hay không. Nếu việc xếp hàng lại là đúng, chúng sẽ được xếp lại hàng - nhưng cờ đã gửi lại của chúng sẽ được đặt. mã hóa phải là "tự động" (trong trường hợp đó, trọng tải sẽ được trả về dưới dạng chuỗi nếu nó là UTF-8 hợp lệ và được mã hóa base64 theo cách khác) hoặc "base64" (trong trường hợp đó, trọng tải sẽ luôn được mã hóa base64). Nếu hiện tại truncate, nó sẽ cắt bớt tải trọng thông báo nếu nó lớn hơn kích thước đã cho (tính bằng byte). cắt ngắn là tùy chọn; tất cả các khóa khác là bắt buộc.
Xin lưu ý rằng các đường dẫn xuất bản / nhận được trong API HTTP nhằm mục đích đưa vào các thông báo thử nghiệm, chẩn đoán, v.v. - chúng không triển khai phân phối đáng tin cậy và do đó, nên được coi là công cụ của sysadmin hơn là một API chung để nhắn tin.
http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_1_3/priv/www/api/index.html
hơi muộn đối với điều này, nhưng có Rabbitmq có tích hợp theo dõi cho phép bạn xem các thông báo gửi đến trong nhật ký. Khi được bật, bạn có thể chỉ tail -f /var/tmp/rabbitmq-tracing/.log
(trên mac) để xem tin nhắn.
mô tả chi tiết ở đây http://www.mikeobrien.net/blog/tracing-rabbitmq-messages