You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Apache Camel Multicast路由中设置Header并传递给Audit Bean

问题分析与解决方案

你的Apache Camel路由配置中,multicast组件默认会为每个子端点复制一份原始Exchange,这意味着你在multicast内直接设置的Header无法正确传递给对应的audit端点——因为每个子节点拿到的都是初始Exchange的副本,后续的Header修改不会影响其他分支,甚至当前分支的修改也可能因为Exchange复制机制不生效。

修正后的路由配置

<route id="SUB2I0051">    
  <from uri="seda:SUB2-I0051MTMapper"/>   
  <multicast>
    <!-- 第一个分支:文件输出 + 审计 -->
    <pipeline>
      <to uri="file:C:/complexTest/?fileName=MT_Output.txt" />
      <setHeader name="Node">
        <simple>File1</simple>
      </setHeader> 
      <to uri="audit:File1?level=info"/>
    </pipeline>
    <!-- 第二个分支:文件输出 + 审计 -->
    <pipeline>
      <to uri="file:C:/complexTest/?fileName=MTY_Output.txt" />
      <setHeader name="Node">
        <simple>File2</simple>
      </setHeader> 
      <to uri="audit:File1?level=info"/>
    </pipeline>
  </multicast> 
</route>

关键说明

  • 使用<pipeline>将每个分支的逻辑(文件输出、Header设置、审计)包裹起来,每个pipeline会使用独立的Exchange副本,Header的修改会被限定在当前分支内,确保传递给后续的audit端点。
  • multicast的每个子节点现在是完整的pipeline,分支间的Exchange修改互不干扰,符合你为不同文件输出设置对应审计Header的需求。

内容的提问来源于stack exchange,提问作者Ravi Kishore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 12:39:50