- JBoss Fuse 教程
- JBoss Fuse – 首页
- JBoss Fuse - ESB 简介
- 什么是 Fuse?
- JBoss Fuse – Apache Karaf
- JBoss Fuse – Apache Camel
- JBoss Fuse – Camel 概念
- JBoss Fuse – Apache CXF
- JBoss Fuse – REST Web 服务
- JBoss Fuse – Apache AMQ
- JBoss Fuse – 使用 Camel 的 AMQ
- JBoss Fuse – Fabric
- JBoss Fuse – 子容器
- JBoss Fuse – 问题和解决方案
- JBoss Fuse 有用资源
- JBoss Fuse - 快速指南
- JBoss Fuse - 有用资源
- JBoss Fuse - 讨论
什么是 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 将各种技术组合成一个单一产品。
组件
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://jboss.com.cn/
解压缩
与所有其他 JBoss 产品一样,Fuse 也是一个平台无关的 zip 文件。
将下载的文件解压缩到您希望作为 Fuse 安装目录的目标目录中。明智地选择此目录,因为在 Fuse 实例的整个生命周期中,它应该保持不变。
注意 - 即使 Fuse 像其他 JBoss 产品一样解压缩和启动,也不建议在安装完成后将 Fuse 安装从一个位置移动到另一个位置。
配置
解压缩 Fuse 后,您将在解压缩的目录中找到以下目录:
- bin
- etc
- deploy
- lib
- licenses
- extras
- quickstarts
其中我们只使用两个目录bin 和etc。
实际上,在提取 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
在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 本地存储库的路径,Fuse 将从中安装其工件。
org.ops4j.pax.url.mvn.settings = D:/Maven/conf/settings.xml
此属性表示 Fuse 应用来从 Maven 获取工件的 settings.xml。
配置 Maven
Maven 是安装 Fuse 的先决条件。如果您不知道 Maven 是什么,请参阅https://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更改为您在 Maven 的 settings.xml 中提到的本地存储库的实际路径。
运行
完成基本配置更改后,我们现在可以启动 Fuse 了。所有用于处理 Fuse 的二进制文件都位于$FUSE_INSTALLATION_DIR中。
有两种方法可以启动 Fuse:
使用./fuse
这将允许您在启动 Fuse 的同一窗口中查看所有进度和日志。
它将在同一终端中为您提供 Karaf 控制台,如下所示。
注意 - 这将在控制台模式下启动 Fuse,这意味着当用户注销会话或关闭终端时,Fuse 进程也将停止,这在生产或开发场景中是不希望的。此脚本仅应用于调试 Fuse。
使用./start
这不会在屏幕上显示任何日志,甚至不会显示进度,但它将在后台启动 Fuse,并且当用户退出会话或关闭终端时,Fuse 服务不会停止。
在现实世界的应用程序中,这种行为是期望的。即使我们关闭终端,Fuse 也应该在后台运行。
如果要连接到在后台运行的 Fuse,可以使用位于同一文件夹中的client脚本。
您应该获得如下所示的显示。
退出客户端脚本不会停止 Fuse 服务。它只会关闭 Fuse 控制台。
HAWTIO
Fuse 还使用 FMC(Fuse 管理控制台)提供对其的完整 GUI 访问。您可以在以下 URL 上找到 GUI:https://:8181。
我们通过执行命令所做的一切也可以通过访问此基于浏览器的 GUI 来完成。当我们有多个容器并且在 Fabric 环境中运行时,它变得非常有用。