当前位置:职场发展 > JBoss 保险丝

JBoss 保险丝

  • 发布:2023-10-06 16:43


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

JVM问题

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

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

OSGi

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

OSGi的好处

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

捆绑包和功能

这里是捆绑包和功能之间的比较。

捆绑

Bundle相当于OSGi,jar相当于JVM。捆绑包是可在 OSGi 容器内部署的工件。捆绑包是一起或独立工作以形成应用程序的组件。

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

特点

功能是一种将多个捆绑包一起部署的方法。有时,按组部署捆绑包更有意义。功能允许我们仅使用一个命令即可部署一组捆绑包。

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

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

Karaf 构建于 OSGi 框架 Felix 和 Equinox 之上。

卡拉夫建筑

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

热部署

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

录音中

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

管理控制台

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

SSH 访问

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

相关文章