Kafka能帮你分唱片吗?

w8f9ii69  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(279)

Kafka是否提供了对发布到其主题的消息进行操作的工具?我需要将大量的消息发布到我的kafka代理,但是我更愿意将它们打包成一批,然后(如果可能的话)让kafka为我将它们拆分成单独的(较小的)记录/消息…然后发布到一个主题。
基本上,我现在拥有的是:
制作人获取大量信息并将其分割成单独的记录
个别记录发表到Kafka主题
消费者消费Kafka的个人记录
我想要的是:
制作人将一大块文本发送给Kafka主题
Kafka(不知何故)是用分割逻辑配置/编程的,它将这个blob分割成单独的记录
消费者消费Kafka的个人记录
有这样的事吗?

bq8i3lrv

bq8i3lrv1#

本机不存在这样的工具,但是您可以使用apache camel这样的工具轻松地完成这项工作,apache camel是一个成熟的路由库,完全是为这类任务而构建的。在这里,您将使用包含批量记录的一个主题,进行拆分并使用拆分的记录重新发布到另一个主题。使用java dsl,代码如下所示:

from("kafka:brokerHost:9092?topic=records-bulk&groupId=testing&autoOffsetReset=earliest&consumersCount=1")
    .split(body(String.class).tokenize("\n"))
    .to("kafka:brokerHost:9092?topic=records-individual");

上面的示例使用camel-kafka组件,并将每一行视为一个单独的记录,但是有许多其他方法可供选择来分割有效负载。开始使用camel最简单的方法是通过一个包含apachecamel的spring启动项目—这将允许您构建一个独立的可执行文件,您可以将它放置在与代理相关的任何位置。

相关问题