В моем предыдущем посте об интеграции Camel и Kura я продемонстрировал, как легко развернуть маршруты Camel в Kura с помощью Rhiot . В этой статье я хотел бы немного рассказать о том, как управлять маршрутами Camel с уровня веб-интерфейса Kura.
Загрузка XML-маршрутов с использованием свойства SCR
RhiotKuraRouter поставляется с методом RhiotKuraRouter # updated (Map) . Основная цель этого обратного вызова — позволить маршрутизатору быть компонентом SCR, настроенным с использованием веб-интерфейса Kura и EuroTech Everyware Cloud , однако этот обратный вызов можно использовать вне веб-интерфейса и контекста Everyware Cloud.
Всякий раз, когда выполняется обратный вызов RhiotKuraRouter # updated (Map) , RhiotKuraRouter пытается прочитать значение свойства camel.route.xml ( ключ-константа RhiotKuraConstants.XML_ROUTE_PROPERTY ), чтобы проанализировать его значение и загрузить его как маршруты XML Camel. Например, если для свойства camel.route.xml будет задано следующее значение …
<routes xmlns="http://camel.apache.org/schema/spring">
<route id="mqttLogger">
<from uri="paho:topic?brokerUrl=tcp:brokerhost:1883"/>
<to uri="log:messages"/>
</route>
</routes>
… новый маршрут будет автоматически запущен (или обновлен, если маршрут с идентификатором, равным mqttLogger, уже существует).
Все вышеперечисленное в основном означает, что если вы зарегистрируете свой маршрутизатор Kura в качестве декларативной службы OSGi , вы сможете динамически загружать и обновлять XML-маршруты с помощью службы администрирования конфигурации OSGi.
Управление верблюжьими маршрутами XML с помощью веб-интерфейса
Все экземпляры RhiotKuraRouter реализуют интерфейс Kura ConfigurableComponent . Это означает, что их можно настроить с помощью веб-интерфейса Kura.
Я настоятельно рекомендую использовать быстрый старт Rhiot Kura Camel в качестве шаблона для создания маршрутизаторов Kura Camel. Наш быстрый запуск сконфигурирован как компонент SCR, так что вы можете просто развернуть его на сервере Kura и увидеть, что ваш модуль маршрута шлюза развернут как настраиваемая служба. Чтобы указать маршрутный XML, который должен быть загружен контекстом Camel, запущенным в развернутом модуле, отредактируйте свойство сервиса camel.route.xml и нажмите кнопку « Применить» . Как только нажата кнопка « Применить» , маршрут будет проанализирован и загружен.
Наш быстрый запуск Kura Camel также можно использовать в EuroTech Everyware Cloud (EC) .
Обслуживание маршрутов Кура во время выполнения
The ability to maintain Camel routes from web UI without restarting a Kura server is extremely important when it comes to the long term maintenance of your IoT gateway solution. It allows to modify a flow of the existing message routes or create new rules without affecting an uptime of your production environment.
Production-level grade IoT gateway (Kura) and powerful messaging framework (Camel) are an example of a perfect combination of two mature technologies which used together result in a solid, but flexible Internet Of Things solution.