当前位置: 首页 > 知识库问答 >
问题:

Apache Camel:在由Camel route调用的bean方法中获取消费者endpoint信息

夏华藏
2023-03-14

我有多个数据库,都包含同一个表Data。我想从中读取,将所有Data元素输入到MyBean方法@Handler public Data updateData(Data Data)中,并写回该方法的输出。

from("jpa://Data?persistenceUnit=persUnit1").to("direct:collector");
from("jpa://Data?persistenceUnit=persUnit2").to("direct:collector");
from("jpa://Data?persistenceUnit=persUnit3").to("direct:collector");
...

from("direct:collector").bean(new MyBean()).to("jpa://Data?persistenceUnit=destinationUnit");

然而,我需要bean中Data元素来自哪个源的信息(例如持久性单元的名称)以进行验证。最好的方法是什么?

共有2个答案

殳睿
2023-03-14

exchange对象提供有关(当前交换的)“from”endpoint的必要信息:

https://www.javadoc.io/doc/org.apache.camel/camel-api/latest/org/apache/camel/Exchange.html#getFromRouteId()

将id放在路由上是很常见的(但也在endpoint上)

from("jpa://Data?persistenceUnit=persUnit1")
  .routeId("ComingFromRouteA")
  .to("direct:collector");

这样,你可以知道你来自哪里,使用:

exchange.getFromRouteId()
段干麒
2023-03-14

你可以设置一个标题

from("jpa://Data?persistenceUnit=persUnit1")
    .setHeader("dataSource", constant("dataSource1"))
    .to("direct:collector");
from("jpa://Data?persistenceUnit=persUnit2")
    .setHeader("dataSource", constant("dataSource2"))
    .to("direct:collector");
 类似资料:
  • 这是创建ListenerContainerFactory的类 这是我用@KafKalistener注释的Listener类 这是KafkaListenerConfig类,它接受引导服务器、主题名称等。

  • 我正在努力寻找一个成熟的例子,说明如何在Spring Boot框架中使用ApacheCamel进行轮询。 我已经看过了:https://camel.apache.org/manual/latest/polling-consumer.html除此之外:https://camel.apache.org/components/latest/timer-component.html但是代码示例不够广泛,我

  • 有什么方法可以阻止Kafka的消费者在一段时间内消费信息吗?我希望消费者停止一段时间,然后开始消费最后一条未消费的消息。

  • 我有多个Kafka消费者和制作人,主题不同。使用独立应用程序,我想监控Kafka消费者的延迟。 我使用Kafka0.10.0.1,因为Kafka现在存储消费者偏移Kafka本身,所以我怎么能读到相同的。 我能够读取每个分区的主题偏移量。

  • 由于它是一个Spring Boot应用程序,默认偏移量设置为Latest。我在这里做错了什么,请帮我弄明白。

  • 问题内容: Python:如何在被调用方法中获取调用者的方法名称? 假设我有2种方法: 如果我不想对method1进行任何更改,如何在method2中获取调用者的名称(在本示例中,名称为method1)? 问题答案: inspect.getframeinfo和其他相关功能可以帮助: 该自省旨在帮助调试和开发;建议不要将其用于生产功能。