Как обновить свойства верблюда извне?

Я разрабатываю приложение, отличное от OSGI, и мне нужно обновить значения некоторых свойств, используемых в верблюжьих маршрутах (загружено BridgePropertyPlaceHolder). Поэтому я подумал:

  • Чтобы использовать Hawtio, крутую консоль управления, чтобы обновить верблюд с помощью JMX

  • Создайте JMX MBean, который будет обновлять свойства.

Я успешно создаю операции MBean и вызываю их с помощью JMX, но не могу понять, как обновить маршруты верблюдов, зависящие от этих свойств.

Есть ли способ обновить контекст верблюда извне?

Обновление: Пример использования: когда удаленный сервер не возвращает ответ, мы продолжаем отправлять сообщения, пока не достигнем максимального количества неудачных попыток (сообщения без подтверждения). в верблюде мы создаем шаблон маршрутизатора на основе свойства, загруженного из файловой системы. Это свойство может время от времени меняться, и мы хотим сделать это без перезапуска сервера, но проблема в том, что верблюд анализирует маршруты при запуске контекста, и я не могу найти средства для соответствующего обновления маршрутов.


Я благодарен за любое предложение, которое может помочь :)


person user405458    schedule 17.05.2014    source источник


Ответы (3)


Если вы используете обработку ошибок Camel для повторной попытки (повторной доставки), вы можете использовать retryWhile для продолжения повторной попытки, пока не вернете false. Это позволяет вам использовать java-код и т. д., а также позволяет прочитать обновленный параметр конфигурации.

Подробнее см. на

А если у вас есть экземпляр книги «Верблюд в действии», см. стр. 152.

person Claus Ibsen    schedule 12.07.2014

Для каких свойств вы хотите, чтобы они были динамическими. Вы можете переместить эти реквизиты в какую-либо базу данных и получать их всякий раз, когда вы читаете. Я думаю, что для вашего верблюжьего маршрута требуется редизайн.

person geddamsatish    schedule 17.05.2014

При изменении from параметров конечной точки, таких как URL-адреса и т. д., необходимо использовать следующую процедуру в соответствии с верблюдом динамического изменения конечной точки:

  1. остановить маршрут
  2. удалить маршрут
  3. изменить конечную точку
  4. добавить маршрут
  5. начать маршрут

Если конечная точка to должна быть настраиваемой, вы можете использовать компонент список получателей. Здесь вы можете прочитать свойства из базы данных и/или из файловой системы, используя соответствующий компонент Camel.

person Peter Keller    schedule 18.05.2014