Spark Streaming - 生产者完成后如何通知消费者?

Spark Streaming - How do i notify the Consumer once the Producer is done?

一旦 Producer 将所有数据发布到 Kafka topic,是否可以 notify Consumer

相同的数据(带有一些唯一字段)有可能在多个分区中可用,所以我需要对数据进行分组并进行一些计算。

我想过用Sliding window,但问题是不知道Producer是否完成发布数据?

消息量around 50K,如果我们有更好配置的broker,Kafka是否可以秒处理50K messages[Single partition]

目前,我们计划根据Default Partitioner.

进行多分区拆分数据

有什么有效的方法来处理这个问题吗?

更新:

每十五分钟一次,生产者获取数据并开始将数据发布到 Kafka 主题,我确定这是批处理的用例,但这是我们当前的设计。

Spark Streaming 不是那样工作的。它的工作方式是无限的数据流在每个批次间隔流入并得到处理。这意味着如果你想发出逻辑信号"end of batch",你需要发送一条消息表明这批数据已经结束,允许你将处理过的消息发送到你想要的输出接收器。

实现此目的的一种方法是使用有状态流,它跨批次聚合数据并允许您在批次间隔之间保持状态。