【发布时间】:2011-10-19 07:16:51
【问题描述】:
有人用 Karaf 代替 Servicemix 吗?如果是这样,您是如何做出这个决定的?我知道 Servicemix 在 Karaf 周围添加了一层功能,只是好奇 Karaf 是否被单独使用以及为什么......
【问题讨论】:
标签: osgi apache-karaf apache-servicemix
有人用 Karaf 代替 Servicemix 吗?如果是这样,您是如何做出这个决定的?我知道 Servicemix 在 Karaf 周围添加了一层功能,只是好奇 Karaf 是否被单独使用以及为什么......
【问题讨论】:
标签: osgi apache-karaf apache-servicemix
我们在许多应用程序中都使用了 Karaf。我们已经在使用 Camel(JMS 和 Esper)在几个不同的平台(一个 JBoss 4.2 实例、一个 Tomcat 和几个 Felix 实例)之间进行集成,并且由于它运行良好,因此也没有什么理由迁移它(这可能会导致考虑 ServiceMix)。
我们有一些 Felix 节点的唯一原因是它们的使用受限(在客户端桌面上),很少需要/得到更新,我希望这些节点的占用空间最小。对于服务器端的任何 OSGi,我们都在使用 Karaf。
Karaf 提供了生产环境所需的所有功能(请参阅apache-karaf tag's info)。我们针对标准最小框架(使用 pax-exam)进行开发和测试,但部署到 Karaf。
如果您不需要 ESB、JCA、BPEL 等,但想要一个可靠的、可调的 OSGi 容器,那么 Karaf 本身就足够了。 (如果您发现自己需要 ServiceMix 功能的有限子集,您可以随时将它们安装在 Karaf 实例中)。
您也可以将 customise the Karaf distribution 作为 maven 构建的一部分 - 我个人喜欢将容器作为应用程序构建的一部分,因为我可以在最短的时间内从命令行签出、构建和运行整个设置。
最近有一个名为 Cellar 的 Karaf 集群子项目使用 HazelCast,我不确定这是否也适用于 ServiceMix。
【讨论】:
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 的捆绑包。
【讨论】:
【讨论】:
Karaf 不与 CXF 一起提供。
ServiceMix 的纯提取内核。但是,您可以在 Karaf 上安装 CXF,如下所示。
karaf:root()> 特征:repo:add cxf
添加功能 URL 后,我们可以使用以下命令查看“提供的”功能。
karaf:root()> 功能:repo:功能:列表 | grep cxf
要安装 cxf,请执行以下命令
karaf:root()> 功能:安装 cxf
【讨论】: