Apache Camel:将一半数据发送到一条路由,另一半发送到第二条路由。骆驼负载平衡器不工作

时间:2021-06-04 07:26:26

标签: java spring-boot apache-camel

我有一个用例,发送从文件中读取的消息,并将总记录的一半发送给一个 kafka 生产者,另一半发送给第二个 kafka 生产者。

我尝试了负载平衡选项。它只发送给一个生产者(第一个)。

from(itemFileConfig.getWorkingDir())
                .log("Entered into file consumption part::")
                .autoStartup(true)
                .process(fileProcessor)
                .loadBalance()
                .roundRobin()
                .to("direct:kafkaPosting1")
                .to("direct:kafkaPosting2")
                .end();


from("direct:kafkaPosting1")
                .split(body().tokenize("\n"))
                .to("kafka:" + config.getTopicName() + "?" + "brokers=" +
                        config.getBoostStapServers1() + "&" +"serializerClass=" +
                        config.getSerializer())
                .end();



from("direct:kafkaPosting2")
                    .split(body().tokenize("\n"))
                    .to("kafka:" + config.getTopicName() + "?" + "brokers=" +
                            config.getBoostStapServers2() + "&" +"serializerClass=" +
                            config.getSerializer())
                    .end();

非常感谢任何帮助或想法。 我看到使用选择的基于内容的路由,但我需要一个像 even-odd 这样的谓词来区分它.. 没有在网上找到任何帮助..

提前致谢

0 个答案:

没有答案