Apache kafka 过滤流(Kafka?)到动态客户端数

Apache kafka 过滤流(Kafka?)到动态客户端数,apache-kafka,bigdata,apache-nifi,Apache Kafka,Bigdata,Apache Nifi,我们目前正在设计一个大数据处理链。我们目前正在研究NiFi/MiNiFi来接收数据,进行一些标准化,然后导出到DB。在标准化之后,我们计划分叉数据,这样我们就可以有一个实时提要,客户端可以使用不同的过滤器来使用它 我们希望NiFi和/或Kafka都能向客户发送数据,但两者都存在设计问题 有了NiFi,我们正在考虑添加一个websocket服务器,用于侦听新连接,并将其过滤器添加到自定义有状态处理器块中。如果数据块与用户过滤器匹配,则该块将过滤数据并用适当的套接字id标记它,然后生成X个流文件以发

我们目前正在设计一个大数据处理链。我们目前正在研究NiFi/MiNiFi来接收数据,进行一些标准化,然后导出到DB。在标准化之后,我们计划分叉数据,这样我们就可以有一个实时提要,客户端可以使用不同的过滤器来使用它

我们希望NiFi和/或Kafka都能向客户发送数据,但两者都存在设计问题

有了NiFi,我们正在考虑添加一个websocket服务器,用于侦听新连接,并将其过滤器添加到自定义有状态处理器块中。如果数据块与用户过滤器匹配,则该块将过滤数据并用适当的套接字id标记它,然后生成X个流文件以发送到匹配的客户端。这一部分似乎是可行的,但我们也希望能够在客户端连接短时间中断的情况下对数据进行排队

作为替代方案,我们正在研究卡夫卡,但它似乎不支持动态数量的客户端连接的想法。如果我们使用kafka streams来过滤数据,那么每个客户端似乎需要一个主题?这可能最终会超过我们的Zookeeper实例。或者我们可以使用NiFi进行过滤,然后插入到不同的分区中,就像这样:。但是支持的分区数量仍然有限制,对吗?更不用说,当我们放大和缩小时,我们必须让生产者和消费者从正确的分区读取数据


我是不是错过了尼菲或卡夫卡的什么?还是有另外一个项目,我应该考虑这个过滤的数据发送?< /P>卡夫卡确实支持多个客户端,所有客户端都可以发送到同一个主题,如果你这样配置制作人。过滤可以通过Nifi或Kafka流完成(使用Nifi GUI可能更容易)。我的理解是,Kafka流需要编写新主题。这意味着我将不得不为每一个不可持续的客户写一个新的主题。每个客户端都有一个不同的过滤器,所以我不能在NiFi中进行过滤,然后写出一个主题供所有客户端阅读。除非我误解了你的意思。你的客户不会使用卡夫卡流,但是,他们会使用常规卡夫卡制作者。我需要客户使用过滤后的数据子集,他们不会生成数据。啊,我的误解,那么。在这种情况下,如果每个客户机都有自己的过滤器,那么根据数据,每个过滤器“类型”可以有一个主题。用于写入另一主题的API只是Kafka Streams中的一个方法调用,据我所知,它不是必需的。我所知道的唯一的选择是让所有的客户机使用所有的消息,然后删除他们不关心的消息。