Как получить статус ссылки федерации rabbitmq с помощью HTTP-вызовов rabbitmq
Кто-нибудь знает, как я могу получить статус ссылок федерации, используя HTTP-API RabbitMQ? Я могу получить определение федерации в восходящем направлении на следующем примере, но не могу найти способ получить ее статус.
Вызов - http://%5Bhostname%5D:15672/api/parameters/federation-upstream возвращает меня
[{"Значение":{"URI": [ "AMQP: // ПОЛЬЗОВАТЕЛЯ: ПАРОЛЬ @HOSTNAME:4003/ ВХост"],"доверие-идентификатор пользователя" ложь "обмен":"anurag.fed"},"ВХост": "ВХост","компонент": "федерации-вверх","название": "вверх по течению кормили"}]
Официальная документация гласит, что статус ссылки может контролироваться rabbitmqctl или GUI, но нигде не упоминается HTTP apis. Значит ли это, что rabbitmq не имеет такой возможности в API? Может ли кто-нибудь помочь, пожалуйста?
https://www.rabbitmq.com/federation-reference.html"Вы можете отслеживать состояние ссылок федерации, используя rabbitmqctl и плагин управления".
Используемая версия RabbitMQ: 3.6.8
Спасибо анураг
1 ответ
Пользовательский интерфейс управления RabbitMQ использует вызовы REST для извлечения данных, и у вас есть возможность отслеживать эти вызовы:
Включить rabbitmq_federation_management
плагин. Через веб-интерфейс перейдите на страницу, показывающую статус, который вы ищете. Затем откройте инструменты разработчика в своем веб-браузере, чтобы отслеживать сетевые запросы и ответы. Вы увидите запросы к различным /api
Ресурсы REST - одним из них будет то, что вы можете использовать в своем приложении.
ПРИМЕЧАНИЕ: команда RabbitMQ контролирует rabbitmq-users
список рассылки и только иногда отвечает на вопросы по Stackru.
Вы можете вызвать http://%5Bhostname%5D:15672/api/federation-links, чтобы получить json, содержащий поле состояния, например:[
{
"node": "rabbit@hostname",
"exchange": "exchange_name",
"upstream_exchange": "exchange_name",
"type": "exchange",
"vhost": "/",
"upstream": "upstream_name",
"id": "blablabla",
"status": "running",
"local_connection": "<rabbit@hostname9>",
"uri": "amqp://hostname:5672/%2f",
"timestamp": "2019-03-15 13:57:57",
}