目录
第一章:那只准时敲门的“幽灵”——Checkpoint与其背后的IO风暴
1.1 嫌疑人X:Checkpoint的“对齐”诅咒
1.2 RocksDB的“Compaction风暴”
第二章:JVM的“定期大扫除”——GC STW的隐秘角落
2.1 堆外内存的“慢性中毒”
2.2 G1 GC的“Humongous Object”陷阱
2.3 那个被遗忘的“Local Cache”
第三章:不仅是Flink的事儿——外部生态的“蝴蝶效应”
3.1 HDFS/S3 的“Block回收周期”
3.2 Kafka Broker的“Rebalance”与“Log Compaction”
3.3 容器环境的“嘈杂邻居” (Noisy Neighbor)
第四章:时间引发的血案——Timer Storm(定时器风暴)
4.1 窗口触发的“拥堵路口”
4.2 Watermark生成器的“摸鱼”时刻
第五章:僵尸连接与网络防火墙的“30分钟魔咒”
5.1 沉默的杀手
第六章:剖析黑盒——当Stack Trace遇到Arthas
6.1 抓住那只“吞噬CPU的怪兽”
6.2 奇怪的锁竞争
第七章:隐形倾斜——不是所有的热点都写在脸上
7.1 “脉冲式”热点(Pulse Skew)
7.2 那个被忽视的 null 值
第八章:序列化的代价——POJO vs Kryo 的暗战
第九章:微批化的艺术——LocalKeyBy 与 MiniBatch
9.1 手写 LocalKeyBy(本地预聚合)
第十章:最后的杀手锏——自定义分区器(Custom Partitioner)
第一章:那只准时敲门的“幽灵”——Checkpoint与其背后的IO风暴
我们拿到的是一个极其诡异的现场:每30分钟一次,持续5分钟的反压。
这不像是因为数据倾斜导致的“长尾”,也不像代码逻辑死循环导致的“猝死”。它太规律了,规律得像是一个精心设计的定时炸弹。在排除了业务侧的“整点秒杀”或“批量导数”后,我们的目光必须从业务逻辑层,下沉到Flink的Runtime以及更底层的OS层。
很多人看

