Czy można wyświetlić zawartość wiadomości RabbitMQ bezpośrednio z wiersza poleceń?
sudo rabbitmqctl list_queues
wymienia kolejki.
Czy jest jakieś polecenie sudo rabbitmqctl list_queue_messages <queue_name>
?
rabbitmq
rabbitmqctl
rabbitmqadmin
Nożyce
źródło
źródło
Odpowiedzi:
Powinieneś włączyć wtyczkę zarządzającą.
Spójrz tutaj:
http://www.rabbitmq.com/plugins.html
A tu dla specyfiki zarządzania.
http://www.rabbitmq.com/management.html
Na koniec po skonfigurowaniu będziesz musiał postępować zgodnie z poniższymi instrukcjami, aby zainstalować i używać narzędzia rabbitmqadmin. Które można wykorzystać do pełnej interakcji z systemem. http://www.rabbitmq.com/management-cli.html
Na przykład:
przekaże Ci pierwszą wiadomość spoza kolejki.
źródło
requeue=false
bit i po prostu zrobićrabbitmqadmin get queue=<QueueName>
Oto polecenia, których używam, aby pobrać zawartość kolejki:
RabbitMQ w wersji 3.1.5 na Linuksie Fedory przy użyciu https://www.rabbitmq.com/management-cli.html
Oto moje wymiany:
Oto moja kolejka:
Wrzuć kilka elementów do myqueue:
RabbitMQ widzi komunikaty w kolejce:
źródło
sudo python rabbitmqadmin get queue=myqueue requeue=true count=10
aby zobaczyć wiadomości lub usunąć z kolejki wiadomości od końca, a następnie ponownie umieścić je na wierzchu. Czy istnieje sposób, aby po prostu zobaczyć wiadomości zamiast je usuwać?rabbitmqadmin
sudo jest tutaj potrzebne, gdy łączy się z internetowym interfejsem API?requeue=True
Napisałem rabbitmq-dump-queue, która umożliwia zrzucanie wiadomości z kolejki RabbitMQ do plików lokalnych i ponowne wpisywanie wiadomości w ich oryginalnej kolejności.
Przykładowe użycie (aby zrzucić pierwsze 50 wiadomości z kolejki
incoming_1
):źródło
możesz użyć RabbitMQ API, aby uzyskać licznik lub wiadomości:
Pobierz wiadomości z kolejki. (To nie jest HTTP GET, ponieważ zmieni stan kolejki). Powinieneś opublikować treść wyglądającą następująco:
count kontroluje maksymalną liczbę otrzymywanych wiadomości. Możesz otrzymać mniej komunikatów, jeśli kolejka nie może ich natychmiast dostarczyć.
rekeue określa, czy wiadomości zostaną usunięte z kolejki. Jeśli requeue jest prawdziwe, zostaną one ponownie ustawione, ale ich flaga ponownego dostarczenia zostanie ustawiona. kodowanie musi mieć wartość „auto” (w takim przypadku ładunek zostanie zwrócony jako ciąg znaków, jeśli jest prawidłowy w formacie UTF-8, aw innym przypadku zakodowany w base64) lub „base64” (w takim przypadku ładunek będzie zawsze zakodowany w formacie base64). Jeśli truncate jest obecne, obcina ładunek wiadomości, jeśli jest większy niż podany rozmiar (w bajtach). obcięcie jest opcjonalne; wszystkie inne klucze są obowiązkowe.
Należy pamiętać, że ścieżki publikowania / pobierania w interfejsie HTTP API są przeznaczone do wstrzykiwania wiadomości testowych, diagnostyki itp. - nie zapewniają niezawodnego dostarczania i dlatego powinny być traktowane jako narzędzie administratora systemu, a nie ogólne API do przesyłania wiadomości.
http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_1_3/priv/www/api/index.html
źródło
trochę za późno, ale tak, rabbitmq ma wbudowany program śledzący, który pozwala zobaczyć nadchodzące wiadomości w dzienniku. Po włączeniu możesz po prostu
tail -f /var/tmp/rabbitmq-tracing/.log
(na Macu) oglądać wiadomości.szczegółowy opis znajduje się tutaj http://www.mikeobrien.net/blog/tracing-rabbitmq-messages
źródło
Jeśli chcesz mieć wiele wiadomości z kolejki, powiedzmy 10 wiadomości, polecenie do użycia to:
Jeśli nie chcesz, aby wiadomości były żądane, po prostu zmień
ackmode
naack_requeue_false
.źródło