什么是Apache Karaf?

问题描述 投票:60回答:3

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

你能否说Apache Karaf包含以下内容:

  • Apache Felix(这是OSGi 4.2框架的一个实现)
  • Apache Aries(蓝图标准的实现)
osgi apache-felix apache-karaf aries
3个回答
60
投票

TLDR:Apache Karaf更加“包含电池”。它也可以在任何OSGI运行时上运行。

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

有点。 Apache Karaf可以使用Apache Felix。 Apache Karaf也可以使用Equinox或其他OSGi运行时。默认情况下,Apache Karaix会附带Apache Karaf标准下载。

Apache Aries(蓝图标准的实现)

再说一遍。 Apache Karaf的标准下载确实默认带有Apache Aries。

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

OSGI非常简单。您可以在应用程序中启动OSGI运行时,甚至不会注意到它。 shell,从文件夹热部署的能力,从maven仓库安装等等。这些都是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更多'包含电池'。


29
投票

Apache Karaf是一个瑞士军刀,用于运行OSGi“东西”和非OSGi捆绑为OSGi的东西。

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

  • 可以通过CLI或SSH访问“Unix like”shell
  • 捆绑的Hotdeploy
  • 可以将几乎所有内容部署为一个包(普通.jar,spring xml,blueprint等)
  • WAR文件
  • 从maven部署 - 包括自动包装非OSGi包。
  • Web控制台
  • Karaf功能 - “.kar文件”,包括捆绑包和自定义karaf功能/命令。

需要注意的是,Karaf是ServiceMix的一部分(初始名称是ServiceMix内核),因此它与Apache Camel,Apache CXF和Apache ActiveMQ紧密集成。将Karaf变成具有这些功能的ESB是微不足道的。


-1
投票

Apache Karaf只是一个OSGi框架(它可以是equinox,felix .etc)和一堆预定义的模块。

Apache Carafe架构:apache karaf architecture

© www.soinside.com 2019 - 2024. All rights reserved.