如何并行发送/处理到kafka主题/分区?

时间:2017-05-02 13:30:18

标签: apache-kafka flume kafka-producer-api

我有1个水槽代理(1个源,1个通道,1个接收器)从特定目录(Spooldir)读取数据并发送给Kafka Sink。根据我的观察,它只是写入特定的分区。

启用并行发送/处理到kafka主题/分区的配置是什么?

2 个答案:

答案 0 :(得分:0)

您可以尝试添加另一个使用您的spooldir源和频道的接收器。

所以有些东西: 下沉 - 第1频道 - 水槽1 - 沉2

不确定您是否需要另一个频道,因为您可能会重新阅读来自您的spooldir来源的内容。

答案 1 :(得分:0)

默认情况下,事件通过key标头在分区之间分配。如果你想自己分区数据,那么你需要使用设置partitionIdHeader的拦截器。

如果您需要将数据发送到多个主题,则只需为同一来源添加更多频道并将每个频道连接到Kafka接收器:

a1.sources.r1.channels = c1 c2

a1.sinks.k1.channel = c1
a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink
a1.sinks.k1.kafka.topic = topic1
...
a1.sinks.k2.channel = c2
a1.sinks.k2.type = org.apache.flume.sink.kafka.KafkaSink
a1.sinks.k2.kafka.topic = topic2