有人使用Karaf而不是Servicemix吗?如果是的话,你是如何做出这个决定的呢?我知道Servicemix在Karaf周围添加了一层功能,只是好奇Karaf是否被单独使用以及原因是什么...
有人使用Karaf而不是Servicemix吗?如果是的话,你是如何做出这个决定的呢?我知道Servicemix在Karaf周围添加了一层功能,只是好奇Karaf是否被单独使用以及原因是什么...
我们在许多应用程序中使用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构建的一部分-个人而言,我喜欢将容器作为应用程序的一部分构建,因为我可以在最短的时间内从命令行检出、构建和运行整个设置。
最近Karaf有一个名为Cellar的子项目,使用HazelCast进行集群管理,我不确定这是否也适用于ServiceMix。
Karaf不包含CXF。
它是ServiceMix的纯提取内核。但是,您可以按照以下步骤在Karaf上安装CXF。
karaf:root()> feature:repo:add cxf
添加功能URL后,我们可以使用以下命令查看“提供”的功能。
karaf:root()> feature:repo:feature:list | grep cxf
要安装cxf,请执行以下命令
karaf:root()> feature:install cxf