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 应用的部署与扩缩容

AWS 已宣布于 2023 年 8 月将 Amazon Kinesis Data Analytics 更名为 Amazon Managed Service for Apache Flink。Managed Flink 中将 Flink 应用打包为 JAR 文件或 ZIP 包上传到 S3,创建应用时指定该路径。应用启动后自动分配 KPU (Kinesis Processing Unit) 作为计算资源。开发者指南中每个 KPU 提供 1 vCPU 和 4 GB 内存 (截至 2026 年 10 月)。自动扩缩容根据应用的 CPU 使用率增减并行度,KPU 数量随之变化,并行度更新期间应用会暂停。并行度 (Parallelism) 设置决定 Flink 算子的并行执行数,需根据源分区数和处理复杂度调优。应用更新支持就地更新 (停止→更新→重启) 和快照恢复两种方式。

检查点与状态管理

Flink 的有状态处理依赖检查点 (Checkpoint) 机制,在使用支持 exactly-once 的源、算子和汇时获得 exactly-once 语义。Managed Flink 自动配置检查点存储 (S3) 和检查点间隔 (默认配置下为 60 秒,截至 2026 年 10 月)。检查点间隔越短恢复时数据重复越少,但对吞吐量影响越大。状态后端包括 RocksDB,状态后端的类型属于通过支持案例申请修改的 Flink 设置。快照 (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 消费者。

参考资料(AWS 官方)

本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。

如本页内容与官方文档不一致,请以官方文档为准。

分享