【发布时间】:2010-12-09 09:17:00
【问题描述】:
Apache Karaf 是Apache Felix 的子项目。它被定义为“一个轻量级的 OSGi 容器”。
我不明白什么时候应该使用重量级,什么时候使用轻量级。他们的网站对此没有过多解释。
【问题讨论】:
标签: osgi apache-felix apache-karaf
Apache Karaf 是Apache Felix 的子项目。它被定义为“一个轻量级的 OSGi 容器”。
我不明白什么时候应该使用重量级,什么时候使用轻量级。他们的网站对此没有过多解释。
【问题讨论】:
标签: osgi apache-felix apache-karaf
“轻量级 OSGi 容器”标签将 Karaf 与功能更丰富的 OSGi 容器进行对比,不是与 Felix。
引用 Guillaume Nodet(Karaf 的作者)from here:
Felix 只是 OSGi 核心运行时。 Karaf 通过添加其他功能(例如控制台、SSH 远程处理机制、文件部署器等)来提供基于 Felix 的“分发”。
在这个 Karaf 架构图中,Felix(或其他 OSGi 实现 - 目前还支持Equinox)是 OSGi 盒子,其他盒子是 Karaf 添加的功能:
因此,除非您有 Karaf 无法满足的特定需求(需要访问底层实现),否则使用它通常是有意义的,因为它提供了更多“开箱即用”。
【讨论】:
@马塞尔 Karaf 不像 Java EE 服务器那样单一或庞大。这是一个非常苗条和极简的实现。它是一个核心产品,除了基本的控制台、文件加载以便您可以实际读取配置文件等之外没有太多功能。它的最新 zip 文件是 19.1 MB。是的。小的。它可以轻松地在小型设备上运行并在嵌入式中工作。
您可能想到的更像是使用 Karaf 作为核心/内核的 ServiceMix。但它在其完整配置中包含 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 消息代理、Camel 路由引擎和其他一些东西
【讨论】: