我是nifi
的新手,试图读取文件并推送到kafka
。通过一些基本的阅读,我可以做到以下几点。
通过此流程,我能够实现每秒50万条记录,每条记录的大小为100kb。我想赶上2百万/秒的速度。从ListFile
和FetchFile
处理器到slitText
处理器的数据很棒。但是,在PublishKafka
定居下来。
因此,很明显瓶颈是PublishKafka。我如何改善这项表现?我应该在Kafka端还是Nifi-PublishKafka端进行调整。
有人可以帮我吗?谢谢
答案 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(关系)配置为分配负载平衡。