是否有可能notify
Consumer
,一旦Producer
发布到Kafka topic
的所有数据?Spark Streaming - 生产者完成后,如何通知消费者?
有可能相同的数据(有一些独特的领域)可用于多个分区,所以我需要分组数据并做一些计算。
我想为此使用Sliding window
,但问题仍然是我们不知道生产者是否完成发布数据?
消息数量为around 50K
,如果我们有更好的配置代理,卡夫卡可以在几秒内处理50K messages[Single partition]
?
目前,我们计划有多个分区来根据Default Partitioner
拆分数据。
任何有效的方法来处理?
更新:
每15分钟一次,生产者得到的数据,并开始发布数据卡夫卡的话题,我相信这是一个用例进行批处理,但是这是我们目前的设计。
当你在谈论流时,不确定“done”是什么意思。是不是他们是无限期的流的整个点?如果您的制作人正在生成批量消息,并且您关心批量边界,那么您可能会发布“批量结束”消息。 –
@JoePallas:我没有明白,你是什么意思,发布“批量结束”消息。 – Shankar
生产者知道它何时完成一批处理,但消费者不知道它是否已经看到批处理中的所有消息。如果生产者在发布批次的所有数据后发布特殊的“批量结束”消息,则消费者可以等到在处理批次之前看到该消息。如果您有多个分区,这可能会变得更加复杂;标记必须去每个分区。 –