首页 文章

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

提问于
浏览
120

Apache KarafApache Felix的子项目 . 它被定义为"a lightweight OSGi container" .

我不明白我何时应该使用重量级以及何时使用轻量级 . 他们的网站没有解释太多 .

3 回答

  • -1

    'lightweight OSGi container'标签与更多功能丰富的OSGi容器形成对比KarafnotFelix .

    引用Guillaume Nodet(Karaf的作者)from here

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

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

    Karaf Architecture
    因此,除非您有Karaf无法满足的特定需求(需要访问底层实现),否则使用它通常是有意义的,因为它提供了更多'out of the box' .

  • 201

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

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

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

  • 4

    目前,有三种流行的开源OSGi容器: - Equinox . 它是Eclipse IDE核心的模块化Java运行时,

    • Knopflerfish,是OSGi R3和OSGi R4规范的开源实现 .
    • Apache Felix . 是来自Apache Software Foundation的开源OSGi容器 .

    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

相关问题