📜  JBoss Fuse-Apache Karaf

📅  最后修改于: 2020-10-13 08:07:02             🧑  作者: Mango


 

在本章中,我们将讨论Apache Karaf以及为什么将其称为轻量级OSGi容器,以及它的优点和其他重要功能。

JVM问题

JVM或Java虚拟机不充当实际的虚拟机。这是一台机器,可让您即时停止,启动或重新启动其中运行的组件。它有时可能允许在类级别进行热部署,但是如果不重新启动它,就无法在虚拟机中部署或取消部署应用程序的组件。

为了解决此问题并允许Java应用程序中的模块化,Fuse使用了基于OSGi的运行时,称为Apache Karaf。

OSGi

OSGi技术是为Java定义动态组件系统的一组规范。这些规范允许开发模型,其中应用程序(动态)由许多不同(可重用)的组件组成。

OSGi的好处

  • 降低复杂性-应用程序是作为协作组件而构建的,它们相互隐藏了其实现细节,从而降低了复杂性。
  • 可重用性-许多组件可以利用部署在容器中的相同组件。
  • 部署-OSGi借助其生命周期管理API提供对运行中组件的启动,停止和更新的支持,而无需重启容器。

捆绑与功能

以下是捆绑和功能之间的比较。

捆绑

捆绑等同于OSGi,而jar等同于JVM。捆绑包是可在OSGi容器中部署的工件。捆绑软件是可以一起工作或独立工作以形成应用程序的组件。

这些捆绑软件可以在运行时安装,卸载,更新,启动或停止,而无需重新启动容器。

特征

功能是将多个捆绑包一起部署的一种方式。有时在组中部署捆绑软件更有意义。功能使我们仅需一个命令即可部署一组捆绑软件。

为什么要使用另一个容器?

Apache Karaf是基于OSGi的运行时,在其中运行我们的应用程序捆绑包。 Fuse使用Apache Karaf作为其运行时,在其中运行捆绑包并进行协作以提供业务功能。

Karaf是基于Felix和Equinox构建的,Felix和Equinox是OSGi框架。

卡拉夫建筑

卡拉夫建筑

Apache Karaf向基本OSGi运行时添加了以下附加功能。

热部署

Karaf支持热部署。它包含一个热部署目录。放置在此目录中的所有内容都将作为捆绑包自动部署并安装在Karaf中。

记录中

Karaf通过为$ Fuse_home / data / log中的所有捆绑包生成日志来提供集中式日志记录。我们可以在$ Fuse_home / etc目录的org.ops4j.pax.logging.cfg中编辑记录器配置。

管理控制台

Karaf提供了一个复杂而清晰的管理控制台,可与正在运行的保险丝实例进行交互。它还提供了一组预安装的命令,可用于在运行时管理和监视组件(捆绑包)。该控制台是可扩展的,因此它允许我们通过向控制台添加新的捆绑软件来向控制台添加新命令。

管理控制台

SSH访问

Karaf允许使用SSH远程访问此管理控制台。具有有效凭证的任何人都可以通过SSH终端连接到karaf管理控制台。