139

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

我不明白什么时候应该使用重量级以及何时使用轻量级。他们的网站对此没有过多解释。

4

3 回答 3

216

“轻量级 OSGi 容器”标签将Karaf与功能更丰富的 OSGi 容器进行对比,而不是Felix

从这里引用 Guillaume Nodet(Karaf 的作者):

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

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

卡拉夫建筑 因此,除非您有 Karaf 无法满足的特定需求(需要访问底层实现),否则使用它通常是有意义的,因为它提供了更多“开箱即用”。

于 2009-10-23T13:01:25.877 回答
7

@Marcel Karaf 不像 Java EE 服务器那样单一或庞大。这是一个非常苗条和极简的实现。它是一个核心产品,除了基本的控制台、文件加载以便您可以实际读取配置文件等之外没有太多功能。它的最新 zip 文件是 19.1 MB。是的。小的。它可以轻松地在小型设备上运行并以嵌入式方式工作。

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

真的,对于 99% 的项目,直接从 Felix 开始而不使用 Karaf 是没有意义的。

于 2016-03-03T17:02:09.273 回答
-1

目前,有三种流行的开源 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.

http://www.javaworld.com/article/2077837/java-se/java-se-hello-osgi-part-1-bundles-for-beginners.html

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

ServiceMix 和 Karaf 的主要区别在于 ServiceMix 捆绑了一堆其他集成组件——ActiveMQ 消息代理、Camel 路由引擎和其他一些东西

根据: http: //kevinboone.net/osgtest.html

于 2016-11-03T23:42:49.043 回答