搜索

第 8 章 通过路由追踪消息

download PDF

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

目标

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

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

先决条件

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

设置 Fuse 集成视角

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

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

    tutPerspListFIPselected

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

    TutFIP 63
  2. JMX Navigator 选项卡拖到 Terminal 选项卡的最右侧,并将其保存在:

    ftTutFIPrearrange

    此安排为 Diagram View 提供了更多空间,以便以图形方式显示路由上下文的节点,这样您可以更轻松地跟踪消息在遍历路由上下文中的路径。

    注意

    为了轻松访问路由上下文 .xml 文件,特别是项目包含多个上下文时,工具会在 Project ExplorerCamel 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 导航器 中,展开 Local process

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

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

    tutTraceStart

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

    tutDiagramNodes

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

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

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

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

    tutMsgFiles
  2. Drag message1.xml 并将它放到 JMX Navigator 中的 _context1>Endpoints>file>src/data?noop=true 节点上:

    tutJMXLocalCntxtExpanded

    当消息遍历路由时,工具会跟踪并记录每个步骤的 passage。

配置消息视图

您必须刷新 Messages View,然后才能显示消息 trace。如果您希望它们在所有消息跟踪中保留,则需要在 Messages View 中配置列。

  1. 打开 Messages View
  2. 点击面板菜单栏中的 refresh (Refresh 按钮),为视图填充 message1.xml 的消息 trace。
  3. 点面板菜单栏中的 View Menu icon 图标,然后选择 Configure Columns 以打开 Configure Columns 向导:

    TutConfigColsDefaults
    注意

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

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

  4. Configure Columns 向导中,选择并按顺序排序列:

    tutMsgVCnfgColsMnu

    这些列及其顺序将在 Messages View 中保留,直到您再次更改它们。

注意

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

逐步浏览消息跟踪

逐步浏览消息跟踪:

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

    每次在 JMX Navigator 中丢弃消息时,您需要刷新 Messages View,以使用消息 trace 填充它。

  4. 点消息 trace 之一在 Properties 视图中查看它的详情:

    tutTraceDetails2

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

    您可以通过突出显示每个消息实例来逐步浏览消息实例,以了解特定消息如何遍历路由,并在路由中的每个步骤中按预期处理。

  5. 打开 图表 View,查看 路由中的关联步骤是否已突出显示:

    TutMsgTraceDiagNode

    工具在 Diagram View 中提取路由,标记路径退出具有计时和性能指标(以毫秒为单位)的处理步骤。图中仅显示指标 总交换

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

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

    在每个随后的 drop 中,点 refresh (Refresh 按钮)为 Messages View 填充新消息 trace。

  8. 完成后:

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

后续步骤

第 9 章 使用 JUnit 测试路由 教程中,您要为项目创建一个 JUnit 测试案例,并以 Local Camel Context 运行您的项目。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.