是否有人使用Karaf而不是Servicemix?如果是这样,你是怎么做出这个决定的?我知道Servicemix在Karaf周围增加了一层功能,只是好奇Karaf是否自己使用以及为什么......
答案 0 :(得分:27)
我们正在将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构建的一部分 - 我个人喜欢将容器作为应用程序构建的一部分,因为我可以在最短的时间内从命令行检出,构建和运行整个设置。
最近有一个使用HazelCast的Karaf集群子项目Cellar,我不确定这是否也适用于ServiceMix。
答案 1 :(得分:9)
Karaf的生活始于ServiceMix核心。目前,ServiceMix实际上是一组部署到Karaf容器中的bundle。 ServiceMix有许多非常方便的捆绑包,可以做很多很酷的东西,而karaf却没有。也就是说,使用ServiceMix的两个主要原因是: 1)ESB, 2)核磁共振(一种允许你在捆绑和卡拉夫实例之间进行社区化的特征)。
总而言之,ServiceMix小组目前正在规划第5版,它将删除ESB和NMR功能,并将专注于成为Camel的管理容器。在创建可以使用BPL(业务流程语言)描述的组件时,ESB需要付出很多努力。然而,编写ServiceMix的人开始关注EIP(企业集成模式)的实现,这些实现与BPL基本相同,但是以更标准化和可接受的方式实现。这项工作是在Camel项目下完成的。
所以,简而言之。如果您使用的是ServiceMix 4+,那么您也使用了Karaf。如果你想要一个更强大的集成环境,那么今天选择的环境(至少在Apache / Felix世界中)是Karaf,Camel和Servicemix的一些捆绑包。
答案 2 :(得分:2)
这是我做的一个比较例证。从最简单的情况(底部有 Apache Felix 提供的OSGi函数的JVM)到更完整/可管理的OSGi函数(中间的 Apache Karaf ),足够用于实现完整的ESB实例(顶部的 Apache ServiceMix )(请注意,“ESB”不是产品,而是一组端点,路由器,数据库,ETL功能以及在特定情况下配置的内容任务特定的方式)。
答案 3 :(得分:0)
Karaf 不来自CXF。
它是ServiceMix的纯提取内核。但是,您可以在Karaf上安装CXF,如下所示。
<强> karaf:根()&GT;功能:repo:添加cxf
添加功能网址后,我们可以看到&#34;提供的&#34;使用以下命令进行功能。
<强> karaf:根()&GT;功能:repo:功能:列表| grep cxf
要安装cxf,请执行以下命令
<强> karaf:根()&GT;功能:安装cxf