OSGi:ApacheFelix和ApacheKaraf之间有什么区别?

OSGi:ApacheFelix和ApacheKaraf之间有什么区别?,osgi,apache-felix,apache-karaf,Osgi,Apache Felix,Apache Karaf,是的一个子项目。它被定义为“轻量级OSGi容器” 我不明白什么时候该用重量级,什么时候该用轻量级。他们的网站对此没有太多解释。轻量级OSGi容器标签与更多功能丰富的OSGi容器形成对比,而不是带有 引用纪尧姆·诺德(卡拉夫的作者): Felix只是OSGi核心运行时。Karaf通过添加控制台、SSH远程处理机制、文件部署器等其他功能,提供了基于Felix的“分发版” 在这个Karaf架构图中,Felix(或其他OSGi实现——目前也受支持)是OSGi框,其他框是Karaf添加的功能: 因此,除

是的一个子项目。它被定义为“轻量级OSGi容器”


我不明白什么时候该用重量级,什么时候该用轻量级。他们的网站对此没有太多解释。

轻量级OSGi容器标签与更多功能丰富的OSGi容器形成对比,而不是带有

引用纪尧姆·诺德(卡拉夫的作者):

Felix只是OSGi核心运行时。Karaf通过添加控制台、SSH远程处理机制、文件部署器等其他功能,提供了基于Felix的“分发版”

在这个Karaf架构图中,Felix(或其他OSGi实现——目前也受支持)是OSGi框,其他框是Karaf添加的功能:

因此,除非您有Karaf无法满足的特定需求(需要访问底层实现),否则使用它通常是有意义的,因为它提供了更多“现成的” Karaf不像JavaEE服务器那样是单片的或巨大的。它是一个非常纤细和极简的实现。它是一个核心产品,除了基本控制台、文件加载(以便您可以实际读取配置文件)等功能外,没有太多其他功能。它的最新zip文件为19.1MB。是 啊小的它可以轻松地在小型设备上运行并在嵌入式系统中工作

您可能会想到更像ServiceMix的东西,它使用Karaf作为核心/内核。但它的完整配置中包括CXF、ActiveMQ、Camel和其他库。即使如此,它们也有最小、中等和全尺寸

实际上,对于99%的项目来说,直接从Felix开始而不使用Karaf是没有意义的

目前,有三种流行的开源OSGi容器:

  - Equinox. It is the modular Java runtime at the heart of the Eclipse IDE,
  - Knopflerfish, Is an open source implementation of the OSGi R3 and OSGi R4 specifications. 
  - Apache Felix. Is the open source OSGi container from the Apache Software Foundation.

Apache项目维护一个名为Felix的通用OSGi容器。 此处用作ServiceMix和

ServiceMix和Karaf的主要区别在于 ServiceMix捆绑了一系列其他集成组件—ActiveMQ MessageBroker、驼峰路由引擎以及其他一些东西


根据:

任何OSGi容器的一个很好的特性是,您可以选择所需的捆绑包并将其部署到您的容器中。所以我的建议是,首先构建应用程序,然后选择您需要的。“只需安装整个平台,因为它功能丰富”的建议听起来有点像回到巨大的JavaEE应用服务器。现在我并不是说ApacheKaraf有那么大,我只是说你可以而且应该部署你真正需要的东西。在我看来,这个答案是不完整的,因为它没有提到在应用程序中嵌入Felix的用例(不需要使用像Karaf这样的容器)-例如提供插件功能-这是我对以下链接的解释。我错了吗?(我不是专家)链接: