第 8 章 通过路由追踪消息


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

目标

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

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

先决条件

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

设置 Fuse 集成视角

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

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

    tutPerspListFIPselected

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

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

    ftTutFIPrearrange

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

    注意

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

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

    TutCamelContextsFolderPE

开始消息追踪

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 中,展开 本地进程

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

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

    tutTraceStart

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

    tutDiagramNodes

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

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

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

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

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

    tutJMXLocalCntxtExpanded

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

配置消息视图

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

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

    TutConfigColsDefaults
    注意

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

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

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

    tutMsgVCnfgColsMnu

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

注意

您可以在所有工具的表中控制列布局。使用拖动方法临时重新安排表格格式。例如,拖动列的边框规则以扩展或合同其宽度。要隐藏一个列,总计合约其边框。拖动列标题以重新定位表中的列。要保留您的安排,您必须使用 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 视图中查看它的更多详情:

    tutTraceDetails2

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

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

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

    TutMsgTraceDiagNode

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

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

    tutDVnodeMetrics
    • 平均处理消息的步骤所需时间
    • 处理消息步骤的最长时间
    • 处理消息的最短时间
  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 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

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

© 2024 Red Hat, Inc.