什么是 Fuse?

JBoss Fuse 是 Redhat 推出的一款开源 ESB 解决方案。它是基于社区项目 Apache Servicemix 的企业解决方案。

集成到 Fuse

JBoss Fuse 是一个轻量级且灵活的集成平台,允许快速集成企业应用程序。

Fuse 最初由 Progressive software Inc. 开发,该公司于 2012 年被 Redhat 收购。JBoss Fuse 6.1.0.redhat-379 GA 是 Fuse 的稳定版本,可从其官方网站下载。

架构

Fuse 将各种技术组合在一起作为单个产品。

Architecture

组件

Apache CXF

Apache CXF 是一个开源 Web 服务开发框架,它还支持 SOAP 和Rest Web 服务。

Apache Camel

Apache Camel 是一个基于 EIP 的集成框架。EIP 或企业集成模式是针对企业集成中反复出现的问题而确定的解决方案。通过组合这些预定义的开箱即用模式,可以迅速实现完整的集成解决方案。

它允许使用多种领域特定语言(如 Java、Spring DSL 和 Scala 等)编写路由逻辑。

Apache AMQ

Apache AMQ 是一种 JMS,它根据 JMS 标准提供可靠的消息传递系统。它不仅支持 JMS 规范,还提供了一些 JMS 规范中未包含的令人兴奋且有用的功能。

Apache Karaf

Apache Karaf 是轻量级 OSGi 容器,可充当工件的运行时。与 JVM 相比,Apache Karaf 本质上更具动态性。它允许在运行时安装或卸载模块。 Fuse 中的所有工件都部署在 Karaf 中。

Fabric

Fabric 提供了一种在大型分布式环境中管理工件部署的简便方法。它为所有多个 fuse 实例提供集中管理。

安装 Fuse

安装 Fuse 非常简单。与其他 JBoss 产品一样,Fuse 以 zip 文件的形式提供,可以解压,经过一些小的配置更改后即可直接启动。

安装 Fuse 分为四个步骤 −

下载

从以下链接下载 Fuse 6.1.0 GA。 https://www.jboss.org/

解压

与所有其他 JBoss 产品一样,Fuse 也是一个独立于平台的 zip 文件。

将下载的文件解压到您想要作为 Fuse 安装目录的目标目录中。请明智地选择此目录,因为该目录应在 Fuse 实例的整个生命周期内保持不变。

注意 −尽管 Fuse 像其他 JBoss 产品一样解压并启动,但不建议在安装完成后将 Fuse 安装从一个位置移动到另一个位置。

配置

解压 Fuse 后,您将在解压的目录 − 中找到以下目录

  • bin
  • etc
  • deploy
  • lib
  • licenses
  • extras
  • quickstarts

其中我们只使用两个目录 binetc

实际上,在解压 Fuse 后,我们应该能够直接启动 fuse,但这将使用所有默认配置启动 Fuse,这对于生产环境来说是不可取的。强烈建议在启动 Fuse 之前进行以下更改。

设置环境变量

  • 设置以下环境变量 − JAVA_HOME

  • 变量应指向 java 安装目录 − M2_HOME

  • 变量应指向 Maven 安装目录 − PATH

  • 设置路径变量以包含 Java 和 Maven 可执行文件。

Windows

在 Windows 上,可以按照以下给出的说明进行设置 −

开始 → 我的电脑 → 右键单击​​ → 属性 → 高级系统设置 → 环境变量。

UNIX &克隆

对于每个用户,在 *nix 操作系统中都有一个 bash 配置文件。我们可以通过更改此文件来添加或编辑现有系统变量。

$ vi ~/.bash_proflle

注意 − 此文件中的任何更改都是永久性的。强烈建议在更改原始文件之前备份现有文件。

基本配置

我们将讨论 JBoss Fuse 的基本配置,为此我们必须从以下命令开始编辑 $FUSE_INSTALLATION_DIR/etc/

  • user.properties

    • #admin=admin,admin

    • 这需要根据我们想要的第一个管理员的用户名进行更改,第二个管理员的密码进行更改,第三个管理员可以保留原样,因为它表示一个角色,不要忘记删除#

    • 例如 - FuseAdmin = FusePAss,admin

Basic Configuration
  • System.properties

    • karafName = root

      • 这表示您要赋予 Karaf 的名称实例。

      • 我们可以将其命名为任何我们想要的名称,例如 Cont1。

      • 确保您给出的名称是唯一的,并且未被 Fuse 的其他实例使用。

  • org.ops4j.pax.web.cfg

    • Org.osgi.service.http.port = 8181

    • 此属性表示用于访问由 Fuse 提供的基于浏览器的界面 HAWTIO 的端口

    • HAWTIO 是 Fuse 的内置浏览器界面,从 6.0 开始可用

  • org.ops4j.pax.url.mvn.cfg

    • org.ops4j.pax.url.mvn.localRepository = D:/repository

    • 此属性指示我们的 Maven 的 localRepository 路径,Fuse 将从该路径安装其工件。

    • org.ops4j.pax.url.mvn.settings = D:/Maven/conf/settings.xml

    • 此属性指示 Fuse 应使用 settings.xml 从 Maven 获取工件。

配置 Maven

Maven 是安装 Fuse 的先决条件。如果您不知道 maven 是什么,请参阅 https://www.tutorialspoint.com/maven/

Maven 是一个用于构建 Fuse 工件的构建工具。当我们发出安装工件的命令时,Fuse 首先在 Maven 本地存储库中搜索工件。所以我们必须让 Fuse 知道 Maven 的安装位置以及 Maven 本地存储库的路径。

编辑 $FUSE_INSTALLATION_DIR/etc/org.ops4j.paxurl.mvn.cfg

更新以下两个属性 −

  • org.ops4j.pax.url.mvn.settings = $M2_HOME/conf /settings.xml
  • org.ops4j.pax.url.mvn.localRepository = $local_repo

注意 − 请将 $local_repo 更改为 Mavens settings.xml 中提到的本地存储库的实际路径。

运行

完成基本配置更改后,我们现在可以启动 Fuse。所有与 Fuse 一起使用的二进制文件都位于 $FUSE_INSTALLATION_DIR 中。

有两种方法可以启动 Fuse −

  • 使用 ./fuse

    • 这将允许您在启动 Fuse 的同一窗口中查看所有进度和日志。

    • 它将在同一个终端中为您提供 Karaf 控制台,如下所示。

注意 − 这将在控制台模式下启动 fuse,这意味着当用户从会话中注销或关闭终端时,Fuse 进程也将停止,这在生产或开发场景中是不可取的。此脚本仅用于调试 Fuse。

  • 使用 ./start

    • 这不会在屏幕上显示任何日志,甚至不会显示进度,但这会在后台启动 Fuse,并且当用户退出会话或关闭终端时,Fuse 服务不会停止。

    • 在现实世界的应用程序中,需要这种类型的行为。即使我们关闭终端,Fuse 也应该在后台运行。

    • 如果您想连接到在后台运行的 Fuse,您可以使用位于同一文件夹中的 客户端 脚本。

    • 您应该获得如以下屏幕截图所示的显示。

    • 退出客户端脚本不会停止 Fuse 服务。它只会关闭 Fuse 控制台。

配置 Maven

HAWTIO

Fuse 还使用 FMC(Fuse 管理控制台)提供完整的 GUI 访问。您可以在以下 URL http://localhost:8181 上找到 GUI。

HAWTIO

我们通过执行命令所做的一切也可以通过访问这个基于浏览器的 GUI 来完成。当我们有多个容器并且在 Fabric 环境中运行时,它会变得非常有用。