一旦notify
将所有数据发布到Consumer
,是否可以Producer
Kafka topic
?
有可能在多个分区中可以使用相同的数据(有一些唯一的字段),因此我需要对数据进行分组并进行一些计算。
我考虑过使用Sliding window
,但问题是我们还不知道Producer是否已完成发布数据?
消息量为around 50K
,如果我们的经纪人配置更好,Kafka能否在几秒钟内处理50K messages[Single partition]
?
目前,我们计划有多个分区来根据Default Partitioner
分割数据。
有效处理此问题的方法吗?
更新
每十五分钟一次,生产者获取数据并开始将数据发布到Kafka主题,我确信这是批处理的用例,但这是我们当前的设计。
答案 0 :(得分:1)
Spark Streaming不能那样工作。它的工作方式是在每个批处理间隔流入和处理的无限数据流。这意味着如果您想要发出逻辑“批处理结束”的信号,您需要发送一条消息,指示此批数据已经结束,允许您将处理过的消息发送到您想要的输出接收器。
您可以实现此目的的一种方法是使用有状态流,这些流可以跨批次聚合数据,并允许您在批处理间隔之间保持状态。