Apakah mungkin untuk melihat isi pesan RabbitMQ langsung dari baris perintah?
sudo rabbitmqctl list_queues
daftar antrian.
Apakah ada perintah seperti itu sudo rabbitmqctl list_queue_messages <queue_name>
?
Apakah mungkin untuk melihat isi pesan RabbitMQ langsung dari baris perintah?
sudo rabbitmqctl list_queues
daftar antrian.
Apakah ada perintah seperti itu sudo rabbitmqctl list_queue_messages <queue_name>
?
Jawaban:
Anda harus mengaktifkan plugin manajemen.
rabbitmq-plugins enable rabbitmq_management
Lihat disini:
http://www.rabbitmq.com/plugins.html
Dan di sini untuk spesifikasi manajemen.
http://www.rabbitmq.com/management.html
Terakhir, setelah disiapkan, Anda harus mengikuti petunjuk di bawah ini untuk menginstal dan menggunakan alat rabbitmqadmin. Yang dapat digunakan untuk berinteraksi penuh dengan sistem. http://www.rabbitmq.com/management-cli.html
Sebagai contoh:
rabbitmqadmin get queue=<QueueName> requeue=false
akan memberi Anda pesan pertama dari antrian.
requeue=false
sedikit dan lakukan sajarabbitmqadmin get queue=<QueueName>
Berikut adalah perintah yang saya gunakan untuk mendapatkan konten antrian:
RabbitMQ versi 3.1.5 di Fedora linux menggunakan https://www.rabbitmq.com/management-cli.html
Inilah pertukaran saya:
eric@dev ~ $ sudo python rabbitmqadmin list exchanges
+-------+--------------------+---------+-------------+---------+----------+
| vhost | name | type | auto_delete | durable | internal |
+-------+--------------------+---------+-------------+---------+----------+
| / | | direct | False | True | False |
| / | kowalski | topic | False | True | False |
+-------+--------------------+---------+-------------+---------+----------+
Ini antrian saya:
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 |
+-------+----------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------------+--------+---------+
Masukkan beberapa item ke dalam 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 melihat pesan dalam antrian:
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
untuk melihat pesan atau untuk membatalkan pesan dari akhir dan kemudian mengembalikannya ke depan. Apakah ada cara untuk melihat pesan dan bukan menghapusnya.
rabbitmqadmin
terhubung ke API berbasis web, apakah sudo diperlukan di sini?
requeue=True
Saya menulis rabbitmq-dump-queue yang memungkinkan membuang pesan dari antrian RabbitMQ ke file lokal dan memasukkan pesan dalam urutan aslinya.
Contoh penggunaan (untuk membuang 50 pesan pertama dari antrian incoming_1
):
rabbitmq-dump-queue -url="amqp://user:password@rabbitmq.example.com:5672/" -queue=incoming_1 -max-messages=50 -output-dir=/tmp
Anda dapat menggunakan RabbitMQ API untuk menghitung atau mengirim pesan:
/api/queues/vhost/name/get
Dapatkan pesan dari antrian. (Ini bukan HTTP GET karena akan mengubah status antrian.) Anda harus memposting isi seperti:
{"count":5,"requeue":true,"encoding":"auto","truncate":50000}
count mengontrol jumlah maksimum pesan untuk diterima. Anda mungkin mendapatkan lebih sedikit pesan dari ini jika antrian tidak dapat segera menyediakannya.
requeue menentukan apakah pesan akan dihapus dari antrian. Jika requeue benar, mereka akan dikirim ulang - tetapi flag yang dikirim ulang akan disetel. encoding harus berupa "auto" (dalam hal ini payload akan dikembalikan sebagai string jika UTF-8 valid, dan base64 dienkode sebaliknya), atau "base64" (dalam hal ini payload akan selalu dienkode base64). Jika truncate ada, itu akan memotong payload pesan jika lebih besar dari ukuran yang diberikan (dalam byte). truncate adalah opsional; semua kunci lainnya wajib.
Harap diperhatikan bahwa jalur publikasikan / dapatkan di API HTTP dimaksudkan untuk memasukkan pesan uji, diagnostik, dll. - jalur tersebut tidak menerapkan pengiriman yang dapat diandalkan dan karenanya harus diperlakukan sebagai alat sysadmin daripada API umum untuk perpesanan.
http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_1_3/priv/www/api/index.html
agak terlambat untuk ini, tapi ya rabbitmq memiliki pelacak bawaan yang memungkinkan Anda melihat pesan masuk di log. Saat diaktifkan, Anda dapat tail -f /var/tmp/rabbitmq-tracing/.log
(di mac) untuk melihat pesan.
penjelasan rinci ada di sini http://www.mikeobrien.net/blog/tracing-rabbitmq-messages