23

有人使用 Karaf 而不是 Servicemix 吗?如果是这样,您是如何做出这个决定的?我知道Servicemix在Karaf周围添加了一层功能,只是好奇Karaf是否单独使用以及为什么......

4

4 回答 4

28

我们将 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 构建的一部分——我个人喜欢将容器作为应用程序构建的一部分,因为我可以在最短的时间内从命令行签出、构建和运行整个设置。

最近有一个名为Cellar的 Karaf 集群子项目使用 HazelCast,我不确定这是否也适用于 ServiceMix。

于 2011-08-04T10:09:26.860 回答
9

Karaf 的生命始于 ServiceMix 核心。目前,ServiceMix 实际上是一组部署到 Karaf 容器中的捆绑包。ServiceMix 有许多非常方便的捆绑包,它们做了很多很酷的东西,而 karaf 没有。也就是说,使用 ServiceMix 的两个主要原因是:1) ESB,2) NMR(允许您在包和 Karaf 实例之间进行社区的功能)。

综上所述,ServiceMix 小组目前正在计划第 5 版,它将删除 ESB 和 NMR 功能,并将专注于成为 Camel 的管理容器。在 ESB 中,在创建可以使用 BPL(业务流程语言)描述的组件时付出了巨大的努力。然而,编写 ServiceMix 的人开始关注 EIP(企业集成模式)的实现,它在很大程度上与 BPL 做同样的事情,但以更标准化和更可接受的方式来做。这项工作是在 Camel 项目下完成的。

所以,简而言之。如果您使用的是 ServiceMix 4+,那么您也在使用 Karaf。如果您想要一个更健壮的集成环境,那么今天选择的环境(至少在 Apache/Felix 世界中)是 Karaf、Camel 和一些来自 Servicemix 的捆绑包。

于 2011-09-13T20:26:33.493 回答
3

这是我做的一个小对比图。从最简单的情况(底部由Apache Felix提供的带有 OSGi 功能的 JVM),到更完整/可管理的 OSGi 功能(中间的Apache Karaf),再到足够的功能来实现完整的 ESB 实例(顶部的Apache ServiceMix )(请注意,“ESB”不是一个产品,而是一组端点、路由器、数据库、ETL 功能以及其他以特定任务特定方式配置在一起的东西)。

从 Felix 到 Karaf 再到 ServiceMix

于 2017-11-29T17:53:29.840 回答
0

Karaf 不CXF 一起提供。

其ServiceMix的纯提取内核。但是,您可以在 Karaf 上安装 CXF,如下所示。

karaf:root()> 特征:repo:add cxf

添加功能 URL 后,我们可以使用以下命令查看“提供的”功能。

karaf:root()> 功能:repo:功能:列表 | grep cxf

要安装 cxf,请执行以下命令

karaf:root()> 功能:安装 cxf

于 2015-07-12T15:56:39.447 回答