Stream Processing
流处理属于“持续到来的数据怎么处理”这一类问题,它和批处理、实时计算、事件流是邻居,但不是一个词。
拖动事件到达速度和批次间隔,再切换模式。你会看到同样的数据量,真正差别往往不在“算力”,而在“等待时间”。
点卡片翻面,把“数据一边流、一边算”拆成几个核心零件。
流处理真正的关键,不是把“批处理改快一点”,而是承认数据本来就不会停,然后围绕这个前提设计系统。
用户点击、下单、支付、传感器数据、日志消息会不断进入系统。这里的数据不是“导入一次就结束”,而是持续发生。
消息队列或流平台负责把这些事件持续送进来。此时系统面对的是一条没有天然终点的数据河流。
过滤、聚合、连接、转换等逻辑会随着数据到达不断执行,不需要等所有输入都准备完才开始。
因为流没有天然结尾,系统要靠状态记住历史,用窗口定义“我现在统计的是哪一段时间”。
告警、看板、推荐、风控和监控结果会不断更新。输出也不一定是“最终答案”,而是会随着后续数据不断修正的当前视图。
很多业务并不是“算不出来”,而是“等到算出来时已经没用了”。
如果你坚持等数据攒够一批再处理,系统会更像夜里跑一次报表。吞吐可能不差,但新鲜度会明显下降。风控、监控、推荐这类场景里,等待本身就是成本。
一旦切到流处理,事件到了就进入计算链路,结果会持续更新。你不需要总等“全量最终版”,而是能先拿到一个不断逼近真实的最新状态。
流处理最容易被误解的地方,是大家把它想成“超快版批处理”。
“流水线”这个类比很直观,但它也有边界。
顺着这些概念看,流处理会更立体。
答完这 3 题,基本就能分清“流处理”“批处理”“实时”之间的关系。