如何使用 Apache NIFI 在 Kafka 集群中分发数据

how to distribute data in Kafka cluster with Apache NIFI

我在docker有一个Flink的集群(docker已经安装在三个不同的物理节点);此外,相同的三个节点在 Kafka 集群中。图片如下。我在主题的分区之间分配数据时遇到问题。

我的目标是在分区之间分布数据。我有两个选择:

  1. 正在编写一个简单的程序来分发数据。

  2. 使用 Apache Nifi。

每个节点都有socket接收数据,三个节点的数据流是一样的

我的问题是,要在主题的分区之间分发数据,我必须在三个节点之一中使用 Apache NiFi(或简单程序)以防止分区中有重复数据或在每个节点中使用 Apache Nifi Nifi本身,防止分区中有重复数据?

提前致谢。

您可以 运行 在多个节点上创建一个 NiFi 集群,但是您需要以不产生重复数据的方式设计数据流。

例如,如果您 运行 3 节点 NiFi 集群并且您的流程的起点是一个 InvokeHttp 处理器,它使用 http GET 检索一些数据,并且您 运行 这个处理器在所有3个节点,然后所有3个节点都得到相同的数据,所有3个节点将相同的数据发布到Kafka。

如果您 运行 仅在主节点上使用 InvokeHttp 处理器,那么只有一个节点会发布该数据。

这只是一个例子。这取决于你的数据流量。