在流式系统中,如果生产者出现网络问题导致离线几个小时,然后大量数据涌入,这会给系统带来很大困难。因为大部分数据的事件时间已经超出我们设定的窗口范围,无法进行正常的聚合计算。...为了解决这个问题,流式系统提供了几种机制:
丢弃超出窗口的数据:简单但会导致数据损失
调整窗口:扩大窗口以包含更多数据,但窗口范围变大会影响计算精度
重发数据:生产者将离线期间的数据重新发送,系统会进行补充计算以产生正确的结果...移动间隔等于窗口大小为“滚动窗口”,随每记录移动为“滑动窗口”。
窗口可更新时间:计算00:00-00:05平均值,1小时后00:02事件,是否更新00:00-00:05窗口结果?...规定时间窗口重排乱序事件:如3小时内事件重排,3周外事件丢弃。
重排时间窗口内乱序事件的能力:流处理与批处理不同,无“重新运行昨日作业”概念,须同时处理乱序与新事件。...第一种模式实现:
新版本应用作为新消费者群组
从输入主题第一个偏移量开始读取事件,获得自己输入流事件副本
检查结果流,新版本应用赶上进度,切换客户端应用新结果流
第二种模式挑战:
重置应用到输入流起点重新处理