जवाबों:
आपको प्रबंधन प्लगइन को सक्षम करना चाहिए।
rabbitmq-plugins enable rabbitmq_management
यहाँ देखें:
http://www.rabbitmq.com/plugins.html
और यहाँ प्रबंधन की बारीकियों के लिए।
http://www.rabbitmq.com/management.html
अंत में एक बार सेट करने के बाद आपको खरगोशबिटकमिन टूल को स्थापित करने और उपयोग करने के लिए नीचे दिए गए निर्देशों का पालन करना होगा। जिसका उपयोग सिस्टम के साथ पूरी तरह से बातचीत करने के लिए किया जा सकता है। http://www.rabbitmq.com/management-cli.html
उदाहरण के लिए:
rabbitmqadmin get queue=<QueueName> requeue=false
आपको कतार से पहला संदेश देगा।
requeue=false
थोड़ा छोड़ देना चाहिए और बस करना होगाrabbitmqadmin get queue=<QueueName>
यहां वे आदेश हैं जिनका उपयोग मैं कतार की सामग्री प्राप्त करने के लिए करता हूं:
RabbitMQ संस्करण 3.1.5 फेडोरा लाइनक्स पर https://www.rabbitmq.com/management-cli.html का उपयोग कर रहा है
यहाँ मेरे एक्सचेंज हैं:
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 |
+-------+----------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------------+--------+---------+
क्रैक में कुछ आइटम क्रैक करें:
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
संदेश देखने के लिए या अंत से संदेश विपंक्ति और फिर उन्हें सामने से requeue करने के लिए। क्या केवल संदेशों को देखने के बजाय उन्हें धोखा देने का एक तरीका है।
rabbitmqadmin
कि वेब-आधारित एपीआई से जुड़ता है, क्या सूडो की यहां जरूरत है?
requeue=True
मैंने rabbitmq- डंप-कतार लिखी, जो RabbitMQ कतार से स्थानीय फ़ाइलों को संदेश डंप करने और संदेशों को उनके मूल क्रम में भेजने की अनुमति देता है।
उदाहरण का उपयोग (कतार के पहले 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}
गणना संदेशों को प्राप्त करने के लिए अधिकतम संख्या को नियंत्रित करती है। यदि कतार तुरंत उन्हें प्रदान नहीं कर सकती है तो आपको इससे कम संदेश मिल सकते हैं।
requeue निर्धारित करता है कि क्या संदेश कतार से हटा दिया जाएगा। यदि आवश्यक है तो सत्य है कि उनसे अनुरोध किया जाएगा - लेकिन उनका पुनर्वितरण ध्वज सेट किया जाएगा। एन्कोडिंग या तो "ऑटो" होना चाहिए (जिस स्थिति में पेलोड एक स्ट्रिंग के रूप में लौटाया जाएगा यदि यह वैध यूटीएफ -8, और बेस 64 एनकोडेड है), या "बेस 64" (जिस स्थिति में पेलोड हमेशा बेस 64 एनकोडेड होगा)। यदि ट्रंकट मौजूद है तो यह संदेश पेलोड को छोटा कर देगा यदि यह दिए गए आकार (बाइट्स) से बड़ा है। ट्रंकट वैकल्पिक है; अन्य सभी चाबियाँ अनिवार्य हैं।
कृपया ध्यान दें कि HTTP API में प्रकाशित / प्राप्त पथ का उद्देश्य परीक्षण संदेश, डायग्नोस्टिक्स इत्यादि को इंजेक्ट करने के लिए है - वे विश्वसनीय वितरण को लागू नहीं करते हैं और इसलिए उन्हें मैसेजिंग के लिए सामान्य API के बजाय एक sysadmin के टूल के रूप में माना जाना चाहिए।
http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_1_3/priv/www/api/index.html
इससे थोड़ी देर हो गई, लेकिन हाँ खरगोश के पास ट्रैसर में एक निर्माण है जो आपको लॉग में इनकमिंग संदेशों को देखने की अनुमति देता है। सक्षम होने पर, आप बस कर सकते हैंtail -f /var/tmp/rabbitmq-tracing/.log
संदेशों को देखने के लिए (मैक पर) ।
विस्तृत विवरण यहाँ है http://www.mikeobrien.net/blog/tracing-rabbitmq-messages