Jboss Fuse 简明教程

What Is Fuse?

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

Integration to Fuse

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

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

Architecture

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

architecture

Components

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 实例提供集中式管理。

Installing Fuse

安装 Fuse 非常简单。与其他 JBoss 产品一样,Fuse 也以 zip 文件的形式提供,可以对其进行提取,并且在进行一些轻微的配置更改后,可以直接启动它。

安装 Fuse 是一个四步流程:

Download

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

Unzip

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

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

Note - 即使 Fuse 解压缩并像其他 JBoss 产品一样启动,也不建议在安装完成后将 Fuse 安装从一个位置移动到另一位置。

Configure

解压缩 Fuse 后,你将在解压缩的目录中找到以下目录:

  1. bin

  2. etc

  3. deploy

  4. lib

  5. licenses

  6. extras

  7. quickstarts

其中,我们将仅使用两个目录 binetc

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

Set Environment variables

  1. 设置以下环境变量 − JAVA_HOME

  2. 该变量应指向 Java 安装目录 − M2_HOME

  3. 该变量应指向 Maven 安装目录 − PATH

  4. 将路径变量设置为包括 Java 和 Maven 可执行文件。

Windows

在 Windows 中,可通过以下给出的说明完成设置 −

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

UNIX & Clones

*nix 操作系统中,每个用户都有一个 bash 个人信息档案。我们可以通过更改这个文件来添加或编辑现有的系统变量。

$ vi ~/.bash_proflle

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

Basic Configuration

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

  1. user.properties #admin=admin,admin 根据需要的第一个管理员(用户名)、第二个管理员(密码)来进行更改,第三个可保留原样,因为它表示角色,不要忘记删除 # 例如 - FuseAdmin = FusePAss,admin

basic configuration
  1. System.properties karafName = root,表示您想要赋予 Karaf 实例的名字。我们可以给出自己希望的名字,比如 Cont1。确保您给的名字是唯一的名字,且尚未被另一个 Fuse 实例使用。

  2. org.ops4j.pax.web.cfg Org.osgi.service.http.port = 8181 此属性表示用于访问浏览器基础界面 HAWTIO 的端口,该界面由 Fuse 提供 HAWTIO 是一个自 6.0 起可用的面向 Fuse 的内置浏览器界面

  3. org.ops4j.pax.url.mvn.cfg org.ops4j.pax.url.mvn.localRepository = D:/repository 此属性表示 Fuse 将从其安装工件的 Maven 的 localRepository 路径。 org.ops4j.pax.url.mvn.settings = D:/Maven/conf/settings.xml 此属性表示 Fuse 应使用的 settings.xml,以便从 Maven 获取工件。

Configuring 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

更新以下两个属性 −

  1. org.ops4j.pax.url.mvn.settings = $M2_HOME/conf /settings.xml

  2. org.ops4j.pax.url.mvn.localRepository = $local_repo

Note − 请使用 Mavens settings.xml 中提到的本地存储库的实际路径,更改 $local_repo

Run

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

有两种启动 Fuse 的方法 −

  1. 使用 ./fuse 这会让您能够在启动 Fuse 的同一窗口中看到所有进度和日志。它会在同一终端中提供给您 Karaf 控制台,如下所示。

Note − 此命令会以控制台模式启动 Fuse,这意味着当用户退出会话或关闭终端(这是生产或开发场景中不希望出现的)时,Fuse 进程也会停止。这个脚本应该只用于调试 Fuse。

  1. 使用 ./start 这不会在屏幕上显示任何日志,甚至不会显示进度,但这将在后台启动 Fuse,并且当用户退出会话或关闭终端时 Fuse 服务并不会停止。在现实世界的应用程序中,需要此类行为。即使我们关闭终端,Fuse 也应该在后台运行。如果你想连接到在后台运行的 Fuse,可以使用 client 脚本,该脚本位于同一文件夹中。你应该获得下图所示的显示。退出客户端脚本不会停止 Fuse 服务。它只会关闭 Fuse 控制台。

configuring maven

HAWTIO

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

hawtio

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