OSGi:Apache Felix和Apache Karaf有什么区别?


Answers:


209

在“轻量级的OSGi容器”标签对比Karaf与功能更丰富的OSGi容器,菲利克斯

引述纪尧姆机Nodet(Karaf的作者)从这里

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

在此Karaf体系结构图中,Felix(或其他OSGi实现-当前也支持Equinox)是OSGi框,其他框是Karaf添加的功能:

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


5
任何OSGi容器的一个不错的功能是,您可以只选择所需的捆绑软件并将其部署到容器中。因此,我的建议是首先架构您的应用程序,然后选择所需的东西。“只安装整个平台,因为它功能丰富”的建议听起来有点像回到大型Java EE应用程序服务器。现在,我并不是说Apache Karaf差不多和那些大一样,我只是想指出您可以并且应该部署您实际需要的东西。
Marcel Offermans 2014年

1
在我看来,这个答案是不完整的,因为它没有提到将Felix嵌入应用程序的用例(无需使用诸如Karaf之类的容器)-例如提供插件功能-这是我对以下链接。我错了吗?(我不是专家。)链接:felix.apache.org/documentation/subprojects/...
Ĵ土拨鼠

6

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

您可能会想到的更像是ServiceMix,它使用Karaf作为核心/内核。但它包括完整配置的CXF,ActiveMQ,Camel和其他库。即使这样,它们也只有最小,中等和完整大小。

确实,对于其中的99%的项目,直接从Felix开始而不使用Karaf毫无意义。


-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/osgitest.html

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.