如何加快Nifi流式记录到Kafka的速度

时间:2018-11-22 07:16:32

标签: apache-kafka apache-nifi

我是nifi的新手,试图读取文件并推送到kafka。通过一些基本的阅读,我可以做到以下几点。enter image description here

通过此流程,我能够实现每秒50万条记录,每条记录的大小为100kb。我想赶上2百万/秒的速度。从ListFileFetchFile处理器到slitText处理器的数据很棒。但是,在PublishKafka定居下来。

因此,很明显瓶颈是PublishKafka。我如何改善这项表现?我应该在Kafka端还是Nifi-PublishKafka端进行调整。

有人可以帮我吗?谢谢

1 个答案:

答案 0 :(得分:2)

您可以尝试使用Record Oriented处理器,即 PublishKafkaRecord_1.0 处理器。

这样您的流量将是:

1.ListFile
2.FetchFile
3.PublishKafkaRecord_1.0 //Configure with more than one concurrent task

通过使用此流程,我们将不会使用SplitText处理器并在RecordReader/Writer处理器中定义PublishKafkaRecord控制器服务。

In addition 您还可以使用 Remote Process Groups

分配负载

流量:

1.ListFile
2.RemoteProcessGroup
3.FetchFile
4.PublishKafkaRecord_1.0 //In scheduling tab keep more than one concurrent task

有关设计/配置上述流程的更多详细信息,请参见this链接。

从NiFi-1.8版本开始,我们不需要(使用 RemoteProcessGroup (来分配负载),因为我们可以将Connections(关系)配置为分配负载平衡。

请参阅thisNiFi-5516链接,以获取有关NiFi-1.8版本中这些new additions的更多详细信息。