📝 展开文字版内容(供搜索引擎索引)
🌊 流处理
一句话类比:流处理像传送带上的包裹一到就检查,不等仓库堆满再统一开工。
大白话说:流处理把数据看成持续不断到来的事件流,而不是一坨一坨等着统一处理的静态文件。它的关键不是单纯“更快”,而是数据还在进来时,系统就已经开始过滤、聚合、更新状态和输出结果。很多业务之所以需要流处理,不是因为算不出来,而是因为等到所有数据都到齐再算,结果就已经不新鲜了。
拆开看:
- 事件流:持续到来的日志、点击、订单、传感器数据等输入
- 算子:过滤、聚合、连接、转换等持续执行的处理逻辑
- 状态:系统用来记住前文,支撑计数、去重、会话等计算
- 窗口:把没有天然结尾的数据流按时间或规则切段统计
- 检查点:为故障恢复保存中间状态,避免中断后上下文丢失
常见误解:
❌ 流处理就是处理得特别快 → ✅ 更核心的是持续处理持续到来的数据,而不是单纯追求快
❌ 流处理一定是一条消息来一条消息立刻出结果 → ✅ 很多流处理也会使用窗口、状态甚至微批方式
❌ 有了流处理就自动解决实时问题 → ✅ 端到端延迟还取决于采集、网络、存储、下游系统和容错策略
类比的边界:
- 真实流系统会遇到乱序、延迟和重复到达,比普通流水线复杂得多
- 流处理并不等于没有等待,很多实现仍然在吞吐、延迟和准确性之间权衡
- 不是所有业务都值得上流处理,很多离线分析用批处理更简单更便宜