Прослушивание запуска сервера RabbitMQ - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть приложение Java, которое ожидает, что сервер RabbitMQ будет запущен при запуске приложения, и подключится к нему, если будет доступно.Однако, если сервер RabbitMQ не работает, когда приложение запускается и появляется позже, есть ли способ, чтобы мое приложение было уведомлено об этом, чтобы оно могло попытаться подключиться?По сути, я хочу избежать повторного опроса сервера RabbitMQ, чтобы попытаться подключиться к нему.Если бы мое приложение могло предварительно зарегистрироваться в качестве клиента AMQP, чтобы получать уведомления при запуске RabbitMQ, это было бы идеально.Но я не мог узнать из документов, как это сделать.

1 Ответ

0 голосов
/ 17 декабря 2018

После отсутствия ответов на SO я разместил свой вопрос в другом месте, и один из разработчиков RabbitMQ ответил так:

У вас есть три варианта:

  • rabbitmqctl wait [pid file path], которыетребует, чтобы вы знали, каков путь к файлу PID узла.Это неудобно и работает только на локальной машине.
  • rabbitmqctl await_online_nodes [N] --timeout [timeout], который ожидает формирования кластера из N узлов (конечно, N может равняться 1)
  • Вы можете опрашивать один из портов, используемых узлом [1] (который будетбыть активным зависит от используемого протокола (ов)

Я хотел бы избежать опроса из моего приложения.Я считаю, что лучшее решение для меня - это что-то вроде java WatchService (в java.nio.file), который может просматривать лог-файл RabbitMQ на предмет изменений и кода, который может уведомить мое приложение только один раз через REST, когда онизмененоЧтобы быть уверенным, при получении уведомления мой наблюдатель может посмотреть в лог-файле строку с меткой времени, которая содержит фразу «Запуск RabbitMQ».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...