第 3 章 定义路由
本教程介绍了在路由中添加和配置端点的步骤。端点定义源和接收器(sink),用于通过路由传输的信息。对于 ZooOrderApp
项目,启动(源)端点是包含 XML 消息文件的文件夹。sink (finishing)端点是您在项目中指定的另一个文件夹。
目标
在本教程中,您将完成以下任务:
- 向路由添加源和接收器端点
- 配置端点
- 连接端点
开始前
在开始本教程前:
- 您必须设置工作区环境,如 第 2 章 设置您的环境 教程中所述。
-
在 CodeReady Studio 中,在 Editor 视图中打开
ZooOrderApp
项目的/src/main/resources/OSGI-INF/blueprint/blueprint.xml
文件。 -
如果需要,请单击 Editor 视图底部的 Design 选项卡,以查看初始路由的图形显示,标记为
Route_route1
。
配置源端点
按照以下步骤将 src/data
文件夹配置为路由的源端点:
将文件组件组件
拖到 canvas 中,并将它放到
Route_route1
容器节点中。File 组件会更改为
Route_route1
容器节点内的From _from1
节点。在 canvas 上,选择
From _from1
节点。Properties 视图位于 canvas 下,显示节点的属性字段进行编辑。
要为消息文件指定源目录,在 Properties 视图中点 Advanced 选项卡:
在 Directory Name 字段中,输入
src/data
:路径
src/data
相对于项目的目录。在 Consumer 选项卡中,点 Noop 选项来启用 Noop 选项。
Noop 选项可防止
消息 Serial.xml
文件从src/data
文件夹中删除,并启用 idempotency 来确保每个message#.xml
文件只消耗一次。选择 Details 选项卡,以打开文件节点的 Details 页面。
请注意,工具会自动使用您在 Advanced 选项卡上配置的 Directory Name 和 Noop 属性填充 Uri 字段。它还使用自动生成的 ID (
_from1
)填充 Id 字段:注意工具前缀使用下划线(_)自动生成 ID 值。您可以选择更改 ID 值。underscore 前缀不是一个要求。
将自动生成的 Id 保留为原样。
-
选择 File
Save 保存路由。
配置接收器端点
添加并配置路由的 sink (目标)端点:
将 另一个文件 组件从 PrometheusRule 的Components drawer 拖放,并将它放到
Route_route1
容器节点上。File 组件会更改为
Route_route1
容器节点内的To_to1
节点。在 canvas 上,选择
To_to1
节点。Properties 视图位于 canvas 下,显示节点的属性字段进行编辑。
在 Details 标签页中:
-
在 Uri 字段中,键入
file:target/messages/received
。 在 Id 字段中,键入
_Received
。注意该工具将在运行时创建
target/messages/received
文件夹。
-
在 Uri 字段中,键入
在
Route_route1
容器中,选择 From _from1 节点,并将其连接器箭头()拖到 To_Received 节点上,然后释放它:
注意这两个文件节点已连接并一致,根据路由编辑器的布局首选项设置。选择是 Down (默认)和 Right。
要访问路由编辑器的布局首选项选项:
-
在 Linux 和 Windows 机器上,选择 Windows
Preferences Fuse Tooling Editor 选择图编辑器的布局方向。 -
在 OS X 上,选择 CodeReady Studio
Preferences Fuse Tooling Editor 选择图表编辑器的布局方向。
注意如果在关闭项目前没有连接节点,工具会在重新打开时自动连接它们。
-
在 Linux 和 Windows 机器上,选择 Windows
- 保存 路由。
点击 canvas 底部的 Source 选项卡来显示路由的 XML:
<?xml version="1.0" encoding="UTF-8"?> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd"> <camelContext id="_context1" xmlns="http://camel.apache.org/schema/blueprint"> <route id="_route1"> <from id="_from1" uri="file:src/data?noop=true"/> <to id="_Received" uri="file:target/messages/received"/> </route> </camelContext> </blueprint>
后续步骤
现在,您在路由中添加和配置了端点,您可以运行路由,如 第 4 章 运行路由 指南所述。