新手警告Apache NiFi!
想了解Apache NiFi管道在集群设置中的可伸缩性方面(并阅读相关材料)。
假设有一个2节点的集群节点1 &节点2 .
一个简单的用例:
- 查询100个批次的数据库表(假设有10个批次)。
- 每个批处理调用一个REST API(调用Http)。
如果在集群的节点1上触发了一个管道,这是否意味着所有的10个批次都只在节点1上运行?
是否有"现成的"工作分配?在每个处理器级别的NiFi中可用?对每个节点的REST API调用按5批执行。
NiFi的内置队列是自然分布的吗?
或者在处理器级别上扩展的推荐方法是将之前处理器的输出发布到消息中间件(如Kafka),然后使后续的NiFi处理器从中消费?
在NiFi的每个处理器级别上扩展的推荐方法是什么?
每个队列都有一个负载均衡策略参数,其中包含以下选项:
Do not load balance
:不负载均衡FlowFiles。Partition by attribute
:根据用户指定的FlowFile属性的值确定将给定的FlowFile发送到哪个节点。Round robin
: FlowFiles将以轮询的方式分发到集群中的节点。Single node
:所有的FlowFiles将被发送到集群中的单个节点。
文档中的详细信息:
https://nifi.apache.org/docs/nifi-docs/html/user-guide.html load_balance