在 Apache Nifi 中从多个 URL 接收数据的最佳方式是什么?
What is the best way to receive data from multiple URL for iot in Apache Nifi?
我想从多个 url 接收数据。你可以认为,每个 url 代表一个设备。我可以为每个设备创建以 getHttp 开头的流程。但这种情况对我来说太糟糕了。另一种选择,我可以创建以 generateFlowFile(每个 url 在此处理器中定义)开始的流,然后拆分,并将此 urls 发送到 invokeHttp 处理器。但是每个 url 都会按顺序工作。因此,当我向 url.
发送请求时,我可能会丢失其他人的数据
遇到这种情况我该怎么办?
编辑:
对于我的用例,首先,我必须从多个 url 接收数据。然后我会在应用一些转换后将这些数据发送到 Kafka。但是我必须从将近 50 个或更多的 URL 中获取数据。我需要在 nifi 集群中以可扩展的方式实时执行此操作。
使用问题中提到的相同流程:
问题中描述的流程:
1.GenerateFlowFile
2.Split Text
3.Extract Text
然后将 ExtractText 处理器的成功关系提供给 RemoteProcessorGroup
(以在集群之间分配负载)。
然后获取分发的流文件将它们提供给InvokeHTTP
处理器和调度 处理器在调度选项卡中 运行 多个并发 任务。
然后使用PublishKafkaRecord
处理器并定义记录Reader/Writer模式,将调度更改为运行 多个并发任务。
最终流程:
1.GenerateFlowFile
2.SplitText
3.ExtractText
4.RemoteProcessorGroup (or) ConnectionLoadBalance(Starting NiFi-1.8.0)
5.InvokeHTTP //more than one concurrent task
6.RemoteProcessorGroup (or) ConnectionLoadBalance(Starting NiFi-1.8.0) //optinal
7.PublishKafkaRecord //more than one concurrent task
尝试使用上述流程,我相信 Kafka 处理器的可扩展性非常好,可以为您提供预期的良好性能:)
另外
从 NiFi-1.8 版本开始,我们 don't
需要使用 RemoteProcessGroup
(分配负载),因为我们可以将连接(关系)配置为分配负载均衡。
在 NiFi-1.8 版本中,有关这些 new additions
的更多详细信息,请参阅 this and NiFi-5516 链接。
我想从多个 url 接收数据。你可以认为,每个 url 代表一个设备。我可以为每个设备创建以 getHttp 开头的流程。但这种情况对我来说太糟糕了。另一种选择,我可以创建以 generateFlowFile(每个 url 在此处理器中定义)开始的流,然后拆分,并将此 urls 发送到 invokeHttp 处理器。但是每个 url 都会按顺序工作。因此,当我向 url.
发送请求时,我可能会丢失其他人的数据遇到这种情况我该怎么办?
编辑: 对于我的用例,首先,我必须从多个 url 接收数据。然后我会在应用一些转换后将这些数据发送到 Kafka。但是我必须从将近 50 个或更多的 URL 中获取数据。我需要在 nifi 集群中以可扩展的方式实时执行此操作。
使用问题中提到的相同流程:
问题中描述的流程:
1.GenerateFlowFile
2.Split Text
3.Extract Text
然后将 ExtractText 处理器的成功关系提供给 RemoteProcessorGroup
(以在集群之间分配负载)。
然后获取分发的流文件将它们提供给InvokeHTTP
处理器和调度 处理器在调度选项卡中 运行 多个并发 任务。
然后使用PublishKafkaRecord
处理器并定义记录Reader/Writer模式,将调度更改为运行 多个并发任务。
最终流程:
1.GenerateFlowFile
2.SplitText
3.ExtractText
4.RemoteProcessorGroup (or) ConnectionLoadBalance(Starting NiFi-1.8.0)
5.InvokeHTTP //more than one concurrent task
6.RemoteProcessorGroup (or) ConnectionLoadBalance(Starting NiFi-1.8.0) //optinal
7.PublishKafkaRecord //more than one concurrent task
尝试使用上述流程,我相信 Kafka 处理器的可扩展性非常好,可以为您提供预期的良好性能:)
另外
从 NiFi-1.8 版本开始,我们 don't
需要使用 RemoteProcessGroup
(分配负载),因为我们可以将连接(关系)配置为分配负载均衡。
在 NiFi-1.8 版本中,有关这些 new additions
的更多详细信息,请参阅 this and NiFi-5516 链接。