Apache Karaf究竟是什么?

79

我有些困惑Apache Karaf到底是什么。

您可以说Apache Karaf包括以下内容,但不限于:

  • Apache Felix(这是OSGi 4.2框架的实现)
  • Apache Aries(这是Blueprint标准的实现)

22
我已经使用OSGi工作了将近十年,但我也不太理解Karaf的意义;-) - Neil Bartlett
相关问题 https://dev59.com/1XI-5IYBdhLWcg3w6tFR - Lee Chee Kiam
你可以跳转到这里观看:https://youtu.be/hFgXPs251po?t=882 - Grim
3个回答

70

简述:Apache Karaf提供了更多“一插即用”的功能。它也可以在任何OSGI运行时上运行。

Apache Felix(这是OSGi 4.2框架的实现)

有点像。 Apache Karaf可以使用Apache Felix。 Apache Karaf还可以使用Equinox或其他OSGI运行时。默认情况下,Apache Karaf标准下载包含Apache Felix。

Apache Aries(这是蓝图标准的实现)

同样如此。 Apache Karaf的标准下载默认包含Apache Aries。

现在让我们谈谈什么是OSGI(Apache Felix,Equinox)以及什么是Apache Karaf:

OSGI非常简单。您可以在应用程序中启动OSGI运行时,甚至不会注意到它。 shell,从文件夹热部署,从maven repo安装等等。这些都是OSGI不必做的额外工作,并由类似Karaf,GOGO或Pax的附加项目提供。

现在来看看Apache Karaf:

基本上,它是一个在标准OSGI实现之上提供一些额外好处的OSGI环境。因为Apache Karaf只是构建在标准OSGI上,理论上它可以在任何OSGI运行时上运行。这为您提供了一个用于处理OSGI运行时的统一接口。

Apache Karaf提供了一些好处,这是在没有额外工作的情况下在Apache Felix中看不到的:

  • 基于文件夹的热部署
  • (我认为)比gogo更好的默认控制台。 (org.apache.karaf.shell)
  • 远程SSH访问该控制台。 (org.apache.karaf.shell.ssh)
  • 集中式日志系统。 (org.apache.karaf.log)
  • 它具有自己提供束和启动级别的方式。 (org.apache.karaf.features)
  • Karaf还拥有自己的maven插件。

几乎任何东西都在此处:

http://mvnrepository.com/search.html?query=org.apache.karaf*

我提到了Karaf拥有自己的一种提供捆绑包和启动级别的方式。Apache Karaf还提供了一系列预定义的组件,供初学者使用。我知道通过OBR,Apache Felix也带有一些组件,但是Apache Karaf更加“即插即用”,内置更多功能。


34

Apache Karaf是一个瑞士军刀,用于运行打包成OSGi的"东西"和非OSGi事物。

Felix和Aries是默认的框架,但框架是可插拔的,因此Equinox也可以工作。

  • 从CLI或SSH访问的“类Unix” shell
  • Bundle的热部署
  • 可以将几乎任何内容(普通的.jar文件、Spring XML、Blueprint等)部署为bundle
  • WAR文件
  • 从maven部署,包括自动包装非OSGi bundle。
  • Web控制台
  • Karaf特性——".kar文件",其中包括bundle和自定义karaf特性/命令。

需要注意的是Karaf是ServiceMix的一部分(最初的名称是ServiceMix kernel),因此它与Apache Camel、Apache CXF和Apache ActiveMQ紧密集成。通过这些功能将Karaf转换为ESB很简单。


2
Apache Karaf是一个带有预定义模块的OSGi框架(可以是Equinox、Felix等)。
Apache Karaf架构如下图所示: apache karaf architecture
最初的回答。

1
Karaf不是一个OSGi框架,它是一个OSGi运行时环境。我认为“一堆预定义模块”对于提问的人没有任何帮助! - pedram bashiri
我认为Apache Karaf概述很清晰。Apache Karaf是一组捆绑包(模块),它包括一个OSGi框架(由基本osgi捆绑包-核心-导出的一组工具,以便其他捆绑包使用)。 - the devops guy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接