我有一个简单的骆驼路线,它从 Kafka 话题中消耗 . 是否有一些处理并写回另一个kafka主题 .
我需要在两者之间做一些处理 . 我在路线中使用了seda,这样kafka消费者就不会在处理过程中被阻止 .
但是在处理之后,Camel将消息路由回源kafka endpoints 而不是目标 endpoints .
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可能是一个请求 - 回复交换,并且响应被返回给源 endpoints . 因此尝试将“ waitForTaskToComplete=Never ”添加到seda . 但没有成功 .
任何帮助都感激不尽 .
1 回答
我认为你需要将交换模式设置为“仅限于” . 像这样: