gpt4 book ai didi

apache-camel - Camel 中的一个路由只使用一次交换吗?

转载 作者:行者123 更新时间:2023-12-04 06:00:41 27 4
gpt4 key购买 nike

首先是我正在尝试做的事情的基本轮廓

  • 我有一个 MQ,我想从
  • 读取消息
  • 预处理 XML,并在 Exchange 上设置属性
  • 发出 HTTP 请求
  • 处理来自 http 请求和初始交换中的属性的数据
  • 将其放入出站消息队列

  • 我一直在环顾四周以确认每次从初始 MQ 读取消息时都会创建一个新的 Exchange。我无法找到任何明确说明的内容,但我假设并想知道是否有人可以确认或否认情况确实如此。

    交易所只使用一次吗?路由是否为传入的每条消息创建一个新的交换?

    谢谢!

    编辑:当然,我的一对然后立即谷歌搜索并找到答案。是的,它是独一无二的,我们在此处找到了有关 Exchange API 的文档 http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Exchange.html

    最佳答案

    大多数情况下,一个 Exchange为路由的每个使用者线程创建。一个异常(exception)(我知道)是使用“直接”端点,它将重用现有的交换(如果请求中已经存在)...

    例如,这 2 条路由链接在一起(通过直接)。第一条路线将创建一个新的 Exchange 并将其传递给第二条路线(请参阅记录的 exchangeId)...

    from("direct:route1").log("route1.exchangeId=${exchangeId}").to("direct:route2");
    from("direct:route2").log("route2.exchangeId=${exchangeId}");

    但是,如果您要将它们与任何其他组件(seda、vm、activemq 等)链接在一起,那么将为第二条路由创建一个新的 Exchange。
    from("seda:route1").log("route1.exchangeId=${exchangeId}").to("seda:route2");
    from("seda:route2").log("route2.exchangeId=${exchangeId}");

    关于apache-camel - Camel 中的一个路由只使用一次交换吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8943649/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com