仓库:https://github.com/apache/flink
官方文档:https://nightlies.apache.org/flink/flink-docs-lts/
技术栈:Java 11 / StateBackend / KeyedState / KeyGroup / StateTable / RocksDB
解读版本:release-1.20.5(commit0980485)
解读视角:总架构师评审(架构 / 源码 / 生产 / 进阶)
第 05 篇:「状态管理」—— StateBackend 可插拔设计与 KeyedState 访问链路
阅读本文你将了解:
- 一条 key 如何经过
murmurHash(key.hashCode()) % maxParallelism落到 keyGroup,再由 keyGroup 范围映射到某个 subtask(flink-runtime/src/main/java/org/apache/flink/runtime/state/KeyGroupRangeAssignment.java:75)。StateBackend是"可插拔"接口,只暴露两个工厂方法——createKeyedStateBackend与createOperatorS