В этой главе мы обсудим Apache Karaf и почему он называется облегченным OSGi-контейнером, а также его преимуществами и другими важными функциями.
Проблема с JVM
Виртуальная машина JVM или Java не действует как фактическая виртуальная машина. Машина, которая позволит вам на лету останавливать, запускать или перезапускать компоненты, работающие внутри. Иногда может быть разрешено горячее развертывание на уровне класса, но вы не сможете развернуть или отменить развертывание компонента своего приложения на виртуальной машине без перезапуска.
Чтобы решить эту проблему и разрешить модульность в Java-приложении, Fuse использует среду исполнения на основе OSGi, известную как Apache Karaf.
OSGi
Технология OSGi — это набор спецификаций, которые определяют систему динамических компонентов для Java. Эти спецификации позволяют разработать модель, в которой приложения (динамически) состоят из множества различных (повторно используемых) компонентов.
Преимущества ОСГи
-
Уменьшенная сложность. Приложение построено как взаимодействующие компоненты, которые скрывают детали реализации друг от друга, что приводит к снижению сложности.
-
Возможность повторного использования — многие компоненты могут использовать один и тот же компонент, развернутый в контейнере.
-
Развертывание — OSGi обеспечивает поддержку запуска, остановки и обновления компонентов на лету с помощью API-интерфейсов управления жизненным циклом без перезапуска контейнера.
Уменьшенная сложность. Приложение построено как взаимодействующие компоненты, которые скрывают детали реализации друг от друга, что приводит к снижению сложности.
Возможность повторного использования — многие компоненты могут использовать один и тот же компонент, развернутый в контейнере.
Развертывание — OSGi обеспечивает поддержку запуска, остановки и обновления компонентов на лету с помощью API-интерфейсов управления жизненным циклом без перезапуска контейнера.
Пакеты Vs Особенности
Ниже приведено сравнение комплектов и функций.
Связки
Пакеты эквивалентны OSGi, что jars для JVM. Пакеты — это артефакты, которые можно развернуть в контейнере OSGi. Пакеты — это компоненты, которые работают вместе или независимо друг от друга, образуя приложение.
Эти пакеты могут быть установлены, удалены, обновлены, запущены или остановлены во время выполнения без перезапуска контейнера.
Характеристики
Функции — это способ развертывания нескольких пакетов вместе. Иногда имеет смысл размещать пакеты в группе. Функции позволяют нам развернуть группу пакетов с помощью только одной команды.
Почему еще один контейнер?
Apache Karaf — это среда исполнения на основе OSGi, где работают наши пакеты приложений. Fuse использует Apache Karaf в качестве среды выполнения, в которой пакеты работают и работают совместно для обеспечения бизнес-функциональности.
Караф построен на Феликсе и равноденствии, которые являются OSGi Frameworks.
Караф Архитектура
Apache Karaf добавляет следующие дополнительные функциональные возможности к базовой среде выполнения OSGi.
Горячее развертывание
Караф поддерживает горячее развертывание. Он содержит каталог горячего развертывания. Все, что находится в этом каталоге, автоматически развертывается и устанавливается в Karaf в виде пакета.
логирование
Karaf обеспечивает централизованное ведение журналов, генерируя журналы для всех пакетов в $ Fuse_home / data / log . Мы можем отредактировать конфигурацию логгера в org.ops4j.pax.logging.cfg в каталоге $ Fuse_home / etc.
Консоль администратора
Karaf предоставляет изощренную и понятную консоль администратора для взаимодействия с запущенным экземпляром fuse. Он также предоставляет предварительно установленный набор команд, которые можно использовать для управления и мониторинга компонентов (Bundle) во время выполнения. Эта консоль является расширяемой, поэтому она позволяет добавлять новые команды в консоль, добавляя новые пакеты в консоль.
SSH доступ
Караф позволяет удаленный доступ к этой консоли администратора с помощью SSH. Любой человек с действительными учетными данными может подключиться к консоли администратора karaf через терминал SSH.