Apache Karaf vs. Servicemix

Ben*_*Day 23 osgi apache-karaf apache-servicemix

是否有人使用Karaf而不是Servicemix?如果是这样,你是怎么做出这个决定的?我知道Servicemix在Karaf附近添加了一层功能,只是好奇Karaf是否自己使用以及为什么......

ear*_*cam 27

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

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


Mik*_*Van 9

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

总而言之,ServiceMix小组目前正在规划第5版,它将删除ESB和NMR功能,并将专注于成为Camel的管理容器.在创建可以使用BPL(业务流程语言)描述的组件时,ESB需要付出很多努力.然而,编写ServiceMix的人开始关注EIP(企业集成模式)的实现,这些实现与BPL基本相同,但是以更标准化和可接受的方式实现.这项工作是在Camel项目下完成的.

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