第 8 章 通过路由追踪消息


通过追踪,您可以截获消息,因为它从一个节点路由到另一个节点。您可以通过路由上下文跟踪消息,以查看您可以优化和微调路由上下文性能的位置。本教程介绍了如何通过路由跟踪消息。

目标

在本教程中,您将完成以下任务:

  • Fuse Integration 视角中运行 ZooOrderApp
  • ZooOrderApp上启用追踪
  • 将消息放到 ZooOrderApp 上,并通过所有路由节点跟踪它们

先决条件

要启动此教程,您需要从以下之一生成的 ZooOrderApp 项目:

设置 Fuse 集成视角

设置工作区以便于消息追踪:

  1. 点击工具栏右侧的 Open Perspective icon 按钮,然后从列表中选择 Fuse Integration

    Fuse Integration 视角在默认布局中打开:

  2. JMX Navigator 选项卡拖到 Terminal 选项卡的最右侧,并将它放到其中:

    此安排提供了更多空间,以便诊断路由上下文的节点以图形方式显示路由上下文的节点,从而可以更轻松地查看消息遍历路由上下文的路径。

    注意

    为了便于访问路由上下文 .xml 文件,特别是当项目由多个上下文组成时,工具会在 Project Explorer 中的 Camel Contexts 文件夹下列出它们。

    另外,路由上下文中的所有路由都直接显示为其上下文文件条目下的图标。要在 canvas 上的路由上下文中显示单个路由,请双击 Project Explorer 中的图标。要在路由上下文中显示所有路由,请双击上下文文件条目。

开始消息追踪

ZooOrderApp 项目中启动消息追踪:

  1. Project Explorer 中,展开 ZooOrderApp 项目,以公开 src/main/resources/OSGI-INF/blueprint/blueprint.xml
  2. 右键单击 src/main/resources/OSGI-INF/blueprint/blueprint.xml 以打开上下文菜单。
  3. 选择 Run As Local Camel Context (不带测试)。

    注意

    如果您选择 Local Camel Context,工具会恢复到在没有测试的情况下运行,因为还没有为 ZooOrderApp 项目创建了 JUnit 测试。稍后您将在 第 9 章 使用 JUnit 测试路由 中执行此操作。

  4. JMX Navigator 中,展开 本地进程

  5. 右键单击 maven [ID] 节点,然后选择 连接
  6. 扩展路由的元素:

  7. 右键点击 Routes 节点,然后选择 Start Tracing

    该工具在图表视图中显示您的路由上下文 的图形表示

    要明确查看所有消息流路径,您可能需要在 图表 视图选项卡中拖动节点来重新安排节点。您可能还需要调整 Red Hat CodeReady Studio 中其他视图和标签页的大小,以允许 Diagram View 选项卡扩展。

在运行的 ZooOrderApp 项目中丢弃消息

丢弃正在运行的 ZooOrderApp 项目中的消息:

  1. Project Explorer 中,展开 ZooOrderApp/src/data,以便您可以访问消息文件(message1.xml 通过 message6.xml):

  2. Drag message1.xml 将其放到 _context1>Endpoints>file>src/data?noop=true 节点上:

    当消息会遍历路由时,工具追踪并记录其传递。

配置消息视图

您必须在显示消息追踪前刷新 Messages View。如果您希望它们在所有消息跟踪中保留,您还需要在 Messages View 中配置列。

  1. 打开 Messages 视图
  2. 点击顶部的 refresh (Refresh 按钮),在面板菜单栏的右侧使用 message1.xml 信息跟踪填充视图。
  3. 点面板菜单栏中的 View Menu icon 图标,然后选择 Configure Columns 以打开 Configure Columns 向导:

    注意

    请注意,您在路由上下文中为消息设置的消息标头 Destination 会出现在列表中。

    您可以通过选择或取消选择 消息视图 来包含或排除它们。您可以通过突出显示个别、选定项目并在列表中移动它们,重新安排在 Messages View 中出现的列号顺序。

  4. Configure Columns 向导中,以这种方式选择并排序列:

    这些列及其顺序将保留在 消息视图中, 直到您再次更改它们。

注意

您可以在所有工具的表中控制列布局。使用拖动方法临时重新安排表格格式。例如,拖动列的边框规则以扩展或合同其宽度。要隐藏一个列,总计合约其边框。拖动列标题以重新定位表中的列。要保留您的安排,您必须使用 View Configure Columns 方法。

逐步浏览消息追踪

逐步浏览消息跟踪:

  1. 拖动 message2.xml 并将其放到 _context1>Endpoints>file>src/data?noop=true 节点上,保存在 JMX Navigator 中。
  2. Console 切换到 Messages 视图
  3. Messages View 中,点 refresh (刷新按钮)使用 message2.xml 消息跟踪填充视图。

    每次丢弃 JMX Navigator 中的消息时,您需要刷新 Messages View 以填充消息跟踪。

  4. 点击其中一个信息跟踪在 Properties 视图中查看它的更多详情:

    该工具在 Properties 视图中显示消息跟踪(包括消息标头)的详细信息,以及 Properties 视图下半消息实例的内容。因此,如果您的应用程序在路由中的任何步骤中设置了标头,您可以检查 Message Details 以查看它们是否如预期设置。

    您可以通过突出显示消息实例来逐步浏览消息实例,以查看特定消息如何遍历路由,以及路由中每个步骤是否按预期处理。

  5. 打开 Diagram View 以查看路由中的相关步骤已突出显示:

    这些工具以 图表 视图中提取路由,标记路径退出处理步骤,包含时间和性能指标(以毫秒为单位)。图中仅显示 指标 Total Exchange。

  6. 将鼠标指针悬停在显示的指标上,以显示有关消息流的额外指标:

    • 平均处理消息的步骤所需时间
    • 处理消息步骤的最长时间
    • 处理消息的最短时间
  7. 另外,您可以随时将 ZooOrderApp/src/data/ 中的其余消息拖放到 _context1>Endpoints>file>src/data?noop=true 节点(只要仍然启用追踪)。

    在每个后续丢弃中,请记住点 refresh (刷新按钮)使用新消息跟踪填充 Messages View

  8. 完成后:

    • JMX Navigator 中,右键单击 _context1 并选择 Stop Tracing Context
    • 打开控制台 并点击面板右上角的 Stop icon 按钮停止控制台。然后点击 Clear icon 按钮清除控制台输出。

后续步骤

第 9 章 使用 JUnit 测试路由 教程中,您可以为项目创建一个 JUnit 测试案例,并将项目作为 本地 Camel 上下文 运行。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat