কমান্ড লাইন থেকে রাব্বিটএমকিউ বার্তাগুলি সরাসরি দেখা সম্ভব?


105

কমান্ড লাইন থেকে রাব্বিটএমকিউ বার্তাগুলি সরাসরি দেখা সম্ভব?

sudo rabbitmqctl list_queues সারি তালিকাবদ্ধ করে।

কোন আদেশ আছে কি sudo rabbitmqctl list_queue_messages <queue_name>?


4
Rabbitmqadmin লিনাক্স ইনস্টল করার সম্বন্ধে stackoverflow.com/questions/36336071/...
আলেক্সি যত্ন

উত্তর:


109

আপনার পরিচালনা প্লাগইন সক্ষম করা উচিত।

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

কিউ বন্ধ প্রথম বার্তা আপনাকে দেবে।


4
ধন্যবাদ, আমার জন্য কাজ করে! এটি অবদান রাখতে পারে: ডিফল্টভাবে খরগোশমেকাডমিনকে কোথাও থেকে কল করা যায় না। এটি /var/lib/rabbitmq/mnesia/rabbit@NODENAME-plugins-expand/rabbitmq_management-3.1.1/priv/www/cli- এ অবস্থিত। একজনকে এর জন্য অনুমতিগুলি ঠিক করতে হবে (chmod 755 rabbitmqadmin) এবং সম্ভবত এটি / usr / স্থানীয় / বিনে অনুলিপি করুন, rabbitmq.com/management-cli.html দেখুন
Scherbius.com

না, আপনি এটিকে লিঙ্ক থেকে ডাউনলোড করতে এবং এটিকে আপনার পথে কোথাও রেখে অ্যাক্সেসযোগ্য করে তুলতে পারেন।
রথহেল্ফ

8
আপনি যদি কেবল বার্তাটি দেখতে চান এবং এটি সারি থেকে সরিয়ে না নিতে চান তবে আপনার requeue=falseকিছুটা ফেলে দেওয়া উচিতrabbitmqadmin get queue=<QueueName>
জোনাতান

4
আপনার সচেতন হওয়া উচিত যে প্রয়োজনীয় বার্তাগুলি পুনঃলিভারী পতাকা সেট করে, সুতরাং পরবর্তী গ্রাহকরা একটি অভিন্ন বার্তা পাবেন না
একিরা

আমি কি ওয়েব ইন্টারফেসে বার্তা সামগ্রী দেখতে পারি?
gstackoverflow

40

কাতার সামগ্রীগুলি পেতে আমি যে আদেশগুলি ব্যবহার করি তা এখানে:

Https://www.rabbitmq.com/management-cli.html ব্যবহার করে ফেডোরা লিনাক্সে র‌্যাবিট এমকিউ সংস্করণ 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 |
+-------+----------+-------------+-----------+---------+------------------------+---------------------+--------+----------+----------------+-------------------------+---------------------+--------+---------+

কিছু আইটেম মেকিউয়ে ক্র্যাম করুন:

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}

খরগোশ এমকিউ বার্তাগুলিকে কাতারে দেখুন:

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        |
+-------------+----------+---------------+---------------------------------------+---------------+------------------+------------+-------------+

4
sudo python rabbitmqadmin get queue=myqueue requeue=true count=10বার্তা দেখার জন্য বা বার্তাগুলি শেষ থেকে সরিয়ে দেওয়ার এবং তারপরে সামনের দিকে পুনরুদ্ধার করার আদেশ Is বার্তাগুলি সন্ধানের পরিবর্তে কেবল দেখার উপায় আছে কি?
অক্ষয় হাজারী

আমি মনে করি প্রাপ্তি এবং পুনরুদ্ধার করা = সত্যই মূলত আমাদের জানায় যে বার্তাগুলি সাদৃশ্যযুক্ত এবং প্রদর্শিত এবং পুনরুদ্ধার করা হয়েছে (push_back সামনে)।
অক্ষয় হাজারী

4
rabbitmqadminওয়েব-ভিত্তিক এপিআই-তে সংযুক্ত হিসাবে , এখানে কি সুডোর প্রয়োজন?
রিচলভ

কেন হয়requeue=True
স্টিফেন

20

আমি রবিটম্যাক-ডাম্প-কাত লিখেছিলাম যা একটি রবিট এমকিউ সারি থেকে স্থানীয় ফাইলগুলিতে বার্তা ডাম্প করতে এবং বার্তাগুলিকে তাদের মূল ক্রমে অনুরোধ করে allows

ব্যবহারের উদাহরণ (সারির প্রথম 50 টি বার্তা ডাম্প করতে incoming_1):

rabbitmq-dump-queue -url="amqp://user:password@rabbitmq.example.com:5672/" -queue=incoming_1 -max-messages=50 -output-dir=/tmp

10

আপনি গণনা বা বার্তাগুলি পেতে RabbitMQ API ব্যবহার করতে পারেন:

/api/queues/vhost/name/get

একটি সারি থেকে বার্তা পান। (এটি কোনও এইচটিপিটি জিইটি নয় কারণ এটি সারিটির স্থিতি পরিবর্তন করে দেবে)) আপনার এমন একটি বডি পোস্ট করা উচিত যা দেখে:

{"count":5,"requeue":true,"encoding":"auto","truncate":50000}

গণনা পেতে বার্তা সর্বাধিক সংখ্যক নিয়ন্ত্রণ করে। এই সারিটি অবিলম্বে সরবরাহ করতে না পারলে আপনি এর চেয়ে কম বার্তা পেতে পারেন।

অনুরোধগুলি সারি থেকে বার্তাগুলি সরানো হবে কিনা তা নির্ধারণ করে। যদি পুনরুদ্ধার সত্য হয় তবে তাদের পুনরুদ্ধার করা হবে - তবে তাদের পুনর্নির্মাণের পতাকাটি সেট করা হবে। এনকোডিংটি অবশ্যই "অটো" হওয়া আবশ্যক (এই ক্ষেত্রে পে-লোডটি স্ট্রিং হিসাবে ফিরে আসবে যদি এটি বৈধ ইউটিএফ -8, এবং বেস64 এনকোডেড অন্যথায় হয়), বা "বেস 64" (এই ক্ষেত্রে পে-লোড সর্বদা বেস64 এনকোডড থাকবে)। যদি সংক্ষিপ্ত আকার উপস্থিত থাকে তবে প্রদত্ত আকারের (বাইটে) মাপের চেয়ে বড় হলে বার্তা পে-লোডটি কেটে যাবে। কাটা কাটা alচ্ছিক; অন্যান্য সমস্ত কী বাধ্যতামূলক।

দয়া করে নোট করুন যে HTTP এপিআই-এ প্রকাশিত / পাথ পাথগুলি পরীক্ষার বার্তা, ডায়াগনস্টিকস ইত্যাদি ইনজেকশনের উদ্দেশ্যে করা হয়েছে - এগুলি নির্ভরযোগ্য বিতরণ কার্যকর করে না এবং মেসেজিংয়ের জন্য একটি সাধারণ এপিআইয়ের পরিবর্তে সিসাদমিনের সরঞ্জাম হিসাবে বিবেচনা করা উচিত।

http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_1_3/priv/www/api/index.html


4

এটি থেকে কিছুটা দেরীতে, তবে হ্যাঁ খরগোশটির ট্রেসার ইন বিল্ড রয়েছে যা আপনাকে লগের মধ্যে অন্তর্নিহিত বার্তাগুলি দেখতে দেয়। সক্ষম করা থাকলে, আপনি tail -f /var/tmp/rabbitmq-tracing/.logবার্তাটি দেখতে (ম্যাকের উপর) করতে পারেন ।

বিস্তারিত বৈষম্য এখানে http://www.mikeobrien.net/blog/tracing-rabbitmq- ম্যাসেজ


4
লিঙ্কটি নষ্ট হয়ে গেছে। মিরর: web.archive.org/web/20160319074032/http://www.mikeobrien.net/… । দুর্দান্ত কাস্টম ত্রুটি পৃষ্ঠা
বিটিডাব্লু

1

আপনি যদি একটি সারি থেকে একাধিক বার্তা চান তবে 10 টি বার্তা বলুন, ব্যবহারের আদেশটি হ'ল:

rabbitmqadmin get queue=<QueueName> ackmode=ack_requeue_true count=10

আপনি যদি বার্তাগুলি প্রয়োজনীয় না চান তবে কেবল এতে পরিবর্তন ackmodeকরুন ack_requeue_false


প্লাস ওয়ান ackmode=ack_requeue_true, requeueঅন্যান্য উত্তরে উল্লিখিত মতো আর কোনও বিকল্প নেই
নিক রোজ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.