假设一个主题有3个kafka分区,我希望我的事件按小时显示,使用事件时间。
当分区在当前窗口之外时,kafka使用者是否会停止从分区读取数据?还是打开了一扇新Windows?如果它正在打开新的窗口,那么,如果一个分区的事件时间与其他分区的事件时间相比非常倾斜,那么理论上不可能让它打开无限数量的窗口,从而耗尽内存吗?当我们重演一些历史时,这种情况尤其可能发生。
我一直试图从阅读文档中得到这个答案,但是找不到关于flink和kafka分区的很多内部内容。关于这个特定主题的一些好的文档将是非常受欢迎的。
谢谢!
2条答案
按热度按时间6jjcrrmo1#
你可以试着用这种风格
crcmnpdw2#
因此,首先,Kafka的所有事件都是不断读取的,进一步的窗口操作不会对其产生影响。当谈到内存不足时,有更多的事情要考虑。
通常情况下,并不是为一个窗口存储每个事件,而是为该事件存储一些聚合
每当窗口关闭时,相应的内存就会被释放。
更多关于kafka消费者如何与eventtime交互的信息(您可以在此处查看水印)