----
状态
单纯处理单个事件很简单,但涉及多个事件时需要跟踪更多信息,这些信息被称为“状态”。
状态通常存储在应用程序的本地变量中,如散列表。...但本地状态存在丢失风险,重启后状态变化,需持久化最近状态并恢复。
本地状态或内部状态:只能被单个应用程序实例访问,使用内嵌数据库维护,速度快但受限于内存大小。...许多设计将数据拆分到子流使用本地状态处理。
外部状态:使用外部数据存储维护,如NoSQL系统Cassandra。大小无限制,多个应用实例可访问,但增加延迟和复杂度。...滑动窗口随每新事件移动,滚动窗口按预定间隔移动,但两者移动间隔都不超过窗口大小。滚动窗口移动间隔与窗口大小相等时,相邻窗口没有重叠;滑动窗口移动间隔小于窗口大小时,相邻窗口有重叠。...更新结果的能力:如结果在数据库,用put或update更新;如邮件发送结果,更新方式需巧妙。