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>
?
rabbitmq
rabbitmqctl
rabbitmqadmin
Gunting
sumber
sumber
Jawaban:
Anda harus mengaktifkan plugin manajemen.
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:
akan memberi Anda pesan pertama dari antrian.
sumber
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:
Ini antrian saya:
Masukkan beberapa item ke dalam myqueue:
RabbitMQ melihat pesan dalam antrian:
sumber
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
):sumber
Anda dapat menggunakan RabbitMQ API untuk menghitung atau mengirim pesan:
Dapatkan pesan dari antrian. (Ini bukan HTTP GET karena akan mengubah status antrian.) Anda harus memposting isi seperti:
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
sumber
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
sumber
Jika Anda ingin beberapa pesan dari antrian, katakanlah 10 pesan, perintah yang digunakan adalah:
Jika Anda tidak ingin pesan dibuat ulang, cukup ubah
ackmode
keack_requeue_false
.sumber