Puncte:0

Pot urmări un consumator RabbitMQ până la o gazdă la distanță?

drapel us

Adesea mă trezesc să rezolv situații în care, din cauza erorii utilizatorului (uitând să închid unele procese), unii consumatori suplimentari ascultă la o coadă RabbitMQ cunoscută. Cand fac rabbitmqctl list_consumers | grep <nume-coadă> Văd că sunt prea mulți consumatori (de obicei, de două ori mai mulți decât ar trebui să fie), dar utilizatorii implicați de multe ori nu știu unde rulează aceștia. Există o modalitate de a urmări un consumator din list_consumers ieșire către gazda la distanță unde rulează procesul asociat? Am încercat toate subcomenzile list_*, dar nu am avut noroc.

Multumesc pentru orice idee.

Puncte:1
drapel us

După ce m-am orientat în interfața de management (mulțumesc @jrhodin), am putut să-mi dau seama cum să fac asta prin rabbitmqctl. Cheia este să îi transmiteți argumentele pid și nume lista canalelor.

Mai întâi, faceți list_consumers și obțineți pid-ul consumatorului:

$ sudo rabbitmqctl list_consumers | grep <nume-coadă>

Copiați codul pid (de ex., <[email protected]>)

Apoi faceți list_channels și căutați codul:

$ sudo rabbitmqctl list_channels pid nume conexiune | grep „<pid-aici>”

Ieșirea va afișa gazda la distanță și gazda locală ca parte a numelui canalului. Dacă doriți în plus să căutați conexiunea, puteți lua pid-ul conexiunii (din comanda de mai sus) și puteți găsi grep prin list_connections pentru aceasta.

Iată o buclă care va scuipa numele consumatorilor și canalelor pentru o anumită coadă:

pentru i în $(sudo rabbitmqctl list_consumers | grep <queue-name> | cut -f 2); 
do echo -n "Consumator: " $i; 
echo -n " ​​Canal: "; 
sudo rabbitmqctl list_channels pid name | grep $i | cut -f 2; 
Terminat

Exemplu de ieșire:

Consumator: <[email protected]> Canal: xx.x.xx.159:8247 -> xxx.xx.xx.119:5671 (1)
Consumator: <[email protected]> Canal: xx.x.xx.159:9002 -> xxx.xx.xx.119:5671 (1)
Consumator: <[email protected]> Canal: xx.x.xx.159:7298 -> xxx.xx.xx.119:5671 (1)
Consumator: <[email protected]> Canal: xx.x.xx.159:12113 -> xxx.xx.xx.119:5671 (1)
Consumator: <[email protected]> Canal: xx.x.xx.159:14212 -> xxx.xx.xx.119:5671 (1)
Puncte:1
drapel ve

Puteți urmări conexiunea (în aproape toate cazurile), dar nu cred că este posibilă prin rabbitmqctl singur.

EDIT: Acesta este posibil, necesită doar mai multe interogări. Vezi răspunsul lui @em-bo.

În interfața de gestionare poți da clic pe canal, iar apoi în secțiunea de detalii vezi cărei conexiuni aparține.

Vizualizare canal

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.