中间件速查手册
大数据计算状态

State 是什么?

算子在两条数据之间要记住的东西,比如“当前累计金额”

类比:记账本,每一笔都往上加,不能每次从零开始

有状态才算流处理

“用户连续失败 5 次就告警”必须有状态。没有状态就只能查外部存储,延迟高、还容易不一致。Flink 把状态放在算子本地,随 checkpoint 一起持久化。

两种状态

Keyed State:按 key 隔离,只有 keyBy 之后才能用,每个 key 一份,适合“每个用户一个计数器”;Operator State:算子级别共享,比如 Kafka Source 记录的 offset。

状态后端

HashMapStateBackend 放 JVM 堆,快但受内存限制;EmbeddedRocksDBStateBackend 放本地磁盘,能存 TB 级状态,代价是序列化开销。状态超过几 GB 就该换 RocksDB。

它出现在这些中间件里

相关问题

相关概念