【发布时间】:2017-05-19 22:29:49
【问题描述】:
我有一个简单的骆驼路线,它从 Kafka 主题中消费。进行一些处理并写回另一个 kafka 主题。
我需要在两者之间进行一些处理。我在路由中使用了 seda,这样 kafka 消费者就不会在处理过程中被阻塞。
但是经过处理后,Camel 将消息路由回源 kafka 端点,而不是目标端点。
from("kafka:<source endpoint details>")
.routeId("FromKafka")
.log("@@@@@@@@: ${body}")
.to("seda:myseda?waitForTaskToComplete=Never");`
from("seda:myseda")
.routeId("sedaRoute")
.process(myprocessor)
.to("kafka:<destination endpoint details>"
输出的有效载荷再次放入源 kafka 主题中。如果我只是用直接替换 seda,它就可以正常工作。
from("kafka:<source endpoint details>")
.routeId("FromKafka")
.log("@@@@@@@@: ${body}")
.to("direct:mydirect");`
from("direct:mydirect")
.routeId("sedaRoute")
.process(myprocessor)
.to("kafka:<destination endpoint details>"
我怀疑 Kafka 可能是一个请求-回复交换,并且响应被返回给源端点。因此尝试将“waitForTaskToComplete=Never”添加到 seda。但没有成功。
任何帮助将不胜感激。
【问题讨论】:
-
你用的是什么版本的骆驼
-
@ClausIbsen 我正在使用 Camel 2.19.0
-
在生产者中使用 bridgeEndpoint 选项
标签: java apache-camel apache-kafka