1、滚动窗口:将实时流数据根据固定的窗口长度进行切片处理。
例子:
比如窗口长度设置的是1分钟,10:00:00发送消息A,10:00:30发送消息B,10:01:01发送消息C。接收端10:01:00收到消息A和消息B,10:02:00收到消息C。
2、滑动窗口:滑动窗口是固定窗口的更广义的一种形式,滑动窗口由固定的窗口长度和滑动步长组成。处理的数据有重叠部分。
例子:
比如窗口长度设置为1分钟,滑动步长为30s,10:00:00发送消息A,10:00:33发送消息B,10:01:01发送消息C,接收端10:01:00接收到消息A和B,10:01:30接收到消息B和C
-
会话窗口:借用会话超时失效的机制来描述窗口,简单来说,就是数据来了之后就开启一个会话窗口,如果接下来还有数据陆续到来,那么就一直保持会话;如果一段时间一直没收到数据(达到会话超时时间),那就认为会话超时失效,窗口自动关闭。与滑动窗口和滚动窗口不同,会话窗口只能给予时间来定义,而没有“会话计数窗口”的概念。
例子:
比如会话超时时间设置为1分钟,10:00:00发送消息A,10:00:59发送消息B,10:01:59发送消息C,一直到10:02:00不发送消息,接收端10:02:00收到消息A、B、C