71

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

你能说 Apache Karaf 包括,除其他外:

  • Apache Felix(它是 OSGi 4.2 框架的实现)
  • Apache Aries(蓝图标准的实现)
4

3 回答 3

68

TLDR: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 还附带了一堆预定义的开始使用。我知道 Apache Felix 也通过 OBR 提供了一些,但 Apache Karaf 提供了更多的“包含电池”。

于 2013-06-28T15:57:28.913 回答
33

Apache Karaf 是一把瑞士军刀,可以运行 OSGi“东西”和捆绑为 OSGi 的非 OSGi 东西。

Felix 和 Aries 是默认的,但框架是可插拔的,所以 equinox 也可以工作。

  • 可从 CLI 或 SSH 访问的“类 Unix”shell
  • 捆绑包的热部署
  • 几乎可以将任何东西部署为一个包(普通的 .jar、spring xml、蓝图等)
  • WAR 文件
  • 从 maven 部署 - 包括自动包装非 OSGi 包。
  • 网页控制台
  • Karaf 功能 - “.kar 文件”,包括捆绑包和自定义 karaf 功能/命令。

附带说明的是,Karaf 是 ServiceMix 的一部分(最初的名称是 ServiceMix 内核),因此它与 Apache Camel、Apache CXF 和 Apache ActiveMQ 紧密集成。将 Karaf 变成具有这些特性的 ESB 是微不足道的。

于 2013-07-01T06:41:25.817 回答
0

Apache Karaf 只是一个带有一堆预定义模块的 OSGi 框架(可以是 equinox、felix 等)。

Apache Karaf 架构: 阿帕奇卡拉夫架构

于 2019-02-26T08:25:11.887 回答