Amazon Managed Service for Apache Flink

全托管运行 Apache Flink,低延迟处理和分析来自 Kinesis Data Streams 或 MSK 的实时流数据的服务

概述

Amazon Managed Service for Apache Flink (原 Kinesis Data Analytics) 是一项全托管运行 Apache Flink 应用的流处理服务。只需部署用 Java、Scala、Python 编写的 Flink 应用,集群预置、扩缩容、补丁、检查点管理等运维全部自动化。支持事件时间处理、窗口聚合、复杂事件处理 (CEP) 等 Flink 的全部功能,可构建亚秒级延迟的实时分析管道。

Flink 应用的部署与扩缩容

Managed Flink 中将 Flink 应用打包为 JAR 文件或 ZIP 包上传到 S3,创建应用时指定该路径。应用启动后自动分配 KPU (Kinesis Processing Unit) 作为计算资源。每个 KPU 提供 1 vCPU 和 4 GB 内存。通过 Auto Scaling 根据输入数据量自动增减 KPU 数量。并行度 (Parallelism) 设置决定 Flink 算子的并行执行数,需根据源分区数和处理复杂度调优。应用更新支持就地更新 (停止→更新→重启) 和快照恢复两种方式。

检查点与状态管理

Flink 的有状态处理依赖检查点 (Checkpoint) 机制保证 exactly-once 语义。Managed Flink 自动配置检查点存储 (S3) 和检查点间隔 (默认 60 秒)。检查点间隔越短恢复时数据重复越少,但对吞吐量影响越大。状态后端可选择 RocksDB (大状态适用) 或堆内存 (低延迟适用)。快照 (Savepoint) 是手动触发的一致性检查点,用于应用升级或迁移。状态 TTL 设置可自动清理过期状态,防止状态无限增长。

Kinesis 与 MSK 的源/汇集成

Managed Flink 原生支持 Kinesis Data Streams 和 MSK (Kafka) 作为数据源和汇。Kinesis 连接器自动处理分片迭代器管理和重新分片事件。MSK 连接器支持 Kafka 消费者组语义,可从指定偏移量恢复消费。汇端支持 S3 (Parquet/JSON)、OpenSearch、DynamoDB、Kinesis Data Streams 等。典型架构:MSK 接收事件 → Flink 执行窗口聚合和异常检测 → 结果写入 OpenSearch 用于可视化 + S3 用于长期存储。与 Kinesis Data Streams 的选型:需要复杂有状态处理选 Flink,简单过滤/转换选 Lambda 消费者。

共有するXB!