Apache Karaf contre Servicemix
est-ce que Quelqu'un utilise Karaf au lieu de Servicemix? Si oui, comment avez-vous pris cette décision? Je suis conscient que Servicemix ajoute une couche de fonctionnalité autour de Karaf, juste curieux de savoir si Karaf est utilisé seul et pourquoi...
4 réponses
nous utilisons Karaf pour un certain nombre de nos applications. Nous utilisions déjà Camel (JMS et Esper) pour l'intégration entre plusieurs plates-formes différentes (une instance JBoss 4.2, une Tomcat et plusieurs instances Félix) et comme cela fonctionnait bien, il n'y avait pas de raison de migrer cela aussi (ce qui aurait été une raison de considérer ServiceMix).
la seule raison pour laquelle nous avons quelques noeuds Félix, c'est qu'ils sont limités dans l'utilisation (sur les postes de travail des clients), rarement besoin/être mis à jour et je je voulais la plus petite empreinte pour ces noeuds. Pour tout OSGi sur le serverside, on utilise Karaf.
Karaf fournit toutes les fonctionnalités que vous attendez et dont vous avez besoin pour un environnement de production (voir apache karaf de la balise info). Nous réalisons notre développement et nos tests par rapport au cadre minimal standard (en utilisant pax-exam) mais déployons-nous sur Karaf.
si vous n'avez pas besoin D'un ESB, JCA, BPEL, etc mais que vous voulez un conteneur OSGi solide et réglable, alors Karaf est plus que suffisant. (Et si vous avez besoin d'un sous-ensemble limité des fonctionnalités de ServiceMix, vous pouvez toujours les installer dans une instance Karaf).
Vous pouvez aussi personnaliser la distribution Karaf dans le cadre d'une construction maven - personnellement, j'aime avoir le conteneur dans le cadre de la construction de l'application, car je peux vérifier, construire et exécuter l'ensemble de la configuration à partir de la ligne de commande en un minimum de temps.
récemment il y a un sous-projet de regroupement de Karaf appelé Cave en utilisant HazelCast, Je ne suis pas sûr que cela s'applique aussi à ServiceMix.
la vie de Karaf a commencé comme le noyau de ServiceMix. Actuellement, ServiceMix est en réalité un ensemble de paquets qui sont déployés dans un conteneur Karaf. ServiceMix a un certain nombre de paquets très pratiques qui font beaucoup de choses cool que karaf ne fait pas. Ceci dit, la raison principale pour utiliser ServiceMix est si vous voulez: 1) un ESB, 2) RMN (une fonctionnalité qui vous permet de communauté entre les faisceaux et les instances de Karaf).
ceci dit, le groupe ServiceMix prépare actuellement la version 5, qui supprimera les caractéristiques ESB et RMN et sera axée sur être un conteneur de gestion pour le chameau. Dans ESB's beaucoup d'efforts lors de la création de composants qui pourraient être décrits en utilisant BPL (Business Process Language). Cependant, les personnes qui ont écrit ServiceMix ont commencé à se concentrer sur la mise en œuvre de L'EIP (Enterprise Integration Patterns) qui fait en grande partie la même chose que la BPL, mais le fait d'une manière plus standardisée et acceptée. Ce travail a été fait sous le chameau projet.
Donc, en bref. Si vous utilisez ServiceMix 4+, vous utilisez aussi Karaf. Si vous voulez un environnement d'intégration plus robuste, L'environnement de choix aujourd'hui (dans le monde Apache/Felix au moins) est Karaf, Camel, et quelques paquets de Servicemix.
Voici une petite illustration comparative que j'ai faite. En partant du cas le plus simple (JVM avec des fonctions OSGi fournies par Apache Felix en bas), à des fonctions OSGi plus complètes/gérables ( Apache Karaf au milieu), à assez de fonctions pour implémenter des instances ESB complètes ( Apache ServiceMix en haut) (notez que "un ESB" n'est pas un produit mais un ensemble de points finaux, routeurs, bases de données, fonctions ETL et tout ce qui n'est pas configuré ensemble dans un tâche particulière de manière spécifique).
Karaf fait NOT venez avec CXF.
son noyau pur extrait de ServiceMix. Cependant, vous pouvez installer CXF sur Karaf comme ci-dessous.
karaf:racine()> caractéristique:repo:ajouter cxf
une fois l'URL de la fonctionnalité ajoutée, nous pouvons voir les fonctionnalités "fournies" en utilisant la commande suivante.
karaf:racine()> caractéristique:repo:fonction:list | grep cxf
pour installer cxf fire la commande ci-dessous
karaf: root () > fonctionnalité:install cxf