Apache Karaf против Servicemix

кто-нибудь использует Karaf вместо Servicemix? Если да, то как вы пришли к этому решению? Я знаю, что Servicemix добавляет слой функциональности вокруг Karaf, просто любопытно, используется ли Karaf самостоятельно и почему...

4 ответов


мы используем Karaf для ряда наших приложений. Мы уже использовали Camel (JMS и Esper) для интеграции между несколькими различными платформами (экземпляр jboss 4.2, Tomcat и несколько экземпляров Felix), и поскольку это работало хорошо, было мало оснований для миграции этого тоже (что было бы причиной рассмотреть ServiceMix).

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

Karaf предоставляет все функции, которые вы ожидаете и нуждаетесь в производственной среде (см. информация о теге apache-karaf). Мы разрабатываем и тестируем стандартную минимальную структуру (используя pax-exam), но развертываем ее в Karaf.

Если вам не нужен ESB, JCA, BPEL и т. д., Но вам нужен твердый настраиваемый контейнер OSGi, тогда Karaf сам по себе больше чем достаточно. (И если вам понадобилось ограниченное подмножество функций ServiceMix, вы всегда можете установить их в экземпляр Karaf).

вы можете Настройка распределения Karaf как часть сборки maven-лично мне нравится иметь контейнер как часть сборки приложения, так как я могу проверить, построить и запустить всю настройку из командной строки за минимальное время.

недавно появился подпроект кластеризации Karaf под названием погреб используя HazelCast, я не уверен, что это относится и к ServiceMix.


жизнь Карафа началась как ядро ServiceMix. В настоящее время ServiceMix-это действительно набор пакетов, которые развертываются в контейнер Karaf. ServiceMix имеет ряд очень удобных пакетов, которые делают много интересных вещей, которые караф не делает. Тем не менее, две основные причины использования ServiceMix-если вы хотите: 1) ESB в, 2) ЯМР (функция, которая позволяет вам общаться между пакетами и экземплярами Karaf).

Это все сказанное, группа ServiceMix в настоящее время планирует версию 5, который удалит функции ESB и ЯМР и будет сосредоточен на том, чтобы быть контейнером управления для Camel. В ESB много усилий при создании компонентов, которые могут быть описаны с помощью BPL (язык бизнес-процессов). Тем не менее, люди, которые написали ServiceMix, начали фокусироваться на реализации EIP (шаблонов интеграции предприятий), которые в основном делают то же самое, что и BPL, но делают это более стандартизированным и принятым способом. Эта работа была сделана под верблюдом проект.

Так, короче. Если вы используете ServiceMix 4+, Вы также используете Karaf. Если вы хотите более надежную среду интеграции, среда выбора сегодня (по крайней мере, в мире Apache/Felix) - это Karaf, Camel и несколько пакетов от Servicemix.


вот небольшая сравнительная иллюстрация, которую я сделал. Переход от простейшего случая (JVM с функциями OSGi, предоставляемыми Apache Felix внизу), чтобы более полные / управляемые функции OSGi (Апач Все Супер в середине), достаточно функций для реализации полных экземпляров ESB (В Apache ServiceMix В вверху) (обратите внимание, что "ESB" - это не продукт, а набор конечных точек, маршрутизаторов, баз данных, функций ETL и всего прочего, настроенных вместе в конкретная задача-специфический способ).

From Felix to Karaf to ServiceMix


все супер делает не приходите с CXF.

его чистое извлеченное ядро ServiceMix. Однако вы можете установить CXF на Karaf, как показано ниже.

karaf: root () > функция:РЕПО:добавить cxf

после добавления URL-адреса функции мы можем увидеть" предоставленные " функции, используя следующую команду.

karaf: root ()> feature:repo:feature: list | grep cxf

для установки CXF запустите команду ниже

karaf: root () > функция: установить cxf