หลังจากได้รับแบริ่งของฉันในส่วนต่อประสานการจัดการ (ขอบคุณ @jrhodin) ฉันสามารถหาวิธีทำสิ่งนี้ผ่าน rabbitmqctl กุญแจสำคัญคือการส่งอาร์กิวเมนต์ pid และชื่อไปที่ ช่องรายการ
.
ก่อนอื่นให้ทำ list_consumers และรับรหัสผู้บริโภค:
$ sudo rabbitmqctl list_consumers | grep <ชื่อคิว>
คัดลอก pid (เช่น <[email protected]>)
จากนั้นทำ list_channels และค้นหา pid:
$ sudo rabbitmqctl list_channels ชื่อการเชื่อมต่อ pid | grep '<your-pid-here>'
เอาต์พุตจะแสดงรีโมตและโลคัลโฮสต์เป็นส่วนหนึ่งของชื่อแชนเนล หากคุณต้องการค้นหาการเชื่อมต่อเพิ่มเติม คุณสามารถใช้ pid การเชื่อมต่อ (จากคำสั่งด้านบน) และ grep ผ่าน list_connections สำหรับมัน
นี่คือลูปที่จะแยกชื่อผู้บริโภคและช่องสำหรับคิวที่กำหนด:
สำหรับฉันใน $(sudo rabbitmqctl list_consumers | grep <queue-name> | cut -f 2);
ทำ echo -n "ผู้บริโภค:" $i;
echo -n " ช่อง: ";
sudo rabbitmqctl list_channels ชื่อ pid | grep $i | ตัด -f 2;
เสร็จแล้ว
ตัวอย่างเอาต์พุต:
ผู้บริโภค: <[email protected]> ช่อง: xx.x.xx.159:8247 -> xxx.xx.xx.119:5671 (1)
ผู้บริโภค: <[email protected]> ช่อง: xx.x.xx.159:9002 -> xxx.xx.xx.119:5671 (1)
ผู้บริโภค: <[email protected]> ช่อง: xx.x.xx.159:7298 -> xxx.xx.xx.119:5671 (1)
ผู้บริโภค: <[email protected]> ช่อง: xx.x.xx.159:12113 -> xxx.xx.xx.119:5671 (1)
ผู้บริโภค: <[email protected]> ช่อง: xx.x.xx.159:14212 -> xxx.xx.xx.119:5671 (1)