部署流式数据管道不仅需要功能代码;它还需要一套权衡吞吐量与延迟的配置策略。Apache Flink 和 Kafka 的默认设置通常将兼容性置于原始速度之前,这可能在处理负载增加时导致资源未充分利用或出现稳定性问题。本单元介绍在高速运行环境中维持性能所必需的具体配置和操作实践。我们首先分析反压。在分布式系统中,慢速的下游操作器会将压力沿着处理图向上回传,最终会停止数据源。您将学习如何解读 Flink 的反压指标,以准确定位您拓扑结构中的瓶颈。之后,我们会查看内存管理。Flink 采用一套复杂的内存分级结构运行,同时管理 JVM 堆内存和堆外直接内存中的数据。理解如何配置网络缓冲区大小和分配内存槽位,对于防止 OutOfMemoryError 崩溃以及减少垃圾回收停顿是必需的。状态访问延迟是另一个常见的性能瓶颈。由于我们使用 RocksDB 进行大规模状态管理,我们将调整其压缩方式和块缓存设置,以最小化磁盘 I/O。在数据摄入端,我们会测量 Kafka 消费者延迟,其技术定义如下:$$Lag = \text{LogEndOffset} - \text{CurrentOffset}$$监控此指标可确保应用程序与输入速率保持同步。本章以一个关于处理数据倾斜的实践练习结束,您将重新分配键以消除那些限制整个集群性能的“热点”分区。