Flume kafka source 基于分区指定key

问题描述

我正在尝试从 Kafka 中提取数据,然后使用水槽将其发送到另一个 Kafka 集群。我知道镜像制造商或融合复制器是更好的方法,但由于某些原因,我必须使用水槽来做到这一点。

使用flume,我可以使用Kafka source 和Kafka sink 来做到这一点。我也成功地完成了那部分。唯一的问题是在该过程中没有维护每个分区的消息排序。消息最终位于 sink 集群的不同分区中,并且不保持任何特定顺序。

我知道flume kafkaSink中有一个分区键选项,可以用来根据键生成消息到特定分区。

Kafka 接收器使用 FlumeEvent 中的主题和关键属性 headers 来确定在 Kafka 中发送事件的位置。如果标题 包含主题属性,该事件被发送到指定的 主题,覆盖配置的主题。如果标题包含密钥 属性,该键用于对主题内的事件进行分区。 具有相同键的事件被发送到同一个分区。如果钥匙 未指定参数,事件随机分布到 分区。使用这些属性来控制主题和分区 事件通过 Flume 源或拦截器发送到哪些。

Source

但是,我还没有找到任何方法来根据水槽中 Kafka Source 的分区分配键。

是否有可能做到这一点? 如果可能的话,任何前进的道路都会非常有帮助。

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)