在 Apache Flink 的托管服务中使用自动缩放 - Managed Service for Apache Flink
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon Managed Service for Apache Flink 之前称为 Amazon Kinesis Data Analytics for Apache Flink。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Apache Flink 的托管服务中使用自动缩放

Managed Service for Apache Flink 可以弹性地扩展应用程序的并行度,以适应大多数情况下源的数据吞吐量和操作员的复杂性。默认情况下,将会启用自动扩展。适用于 Apache Flink 的托管服务监控应用程序的资源 (CPU) 使用情况,并相应地弹性地向上或向下扩展应用程序的并行度:

  • 如果 CloudWatch 指标最大值在 15 分钟内大于 75% 或以上,containerCPUUtilization则您的应用程序会向上扩展(增加并行度)。这意味着当连续有 15 个数据点,其中 1 分钟周期等于或大于 75% 时,就会启动ScaleUp操作。一个ScaleUp动作会使你的应用程序翻CurrentParallelism一番。 ParallelismPerKPU未被修改。结果,分配的数量KPUs也翻了一番。

  • 当您的CPU使用量在六小时内保持在 10% 以下时,您的应用程序会缩小规模(降低并行度)。这意味着当连续有 360 个数据点,其中 1 分钟周期小于 10% 时,就会启动ScaleDown操作。ScaleDown操作将应用程序的并行度减半(四舍五入)。 ParallelismPerKPU未修改,分配的数量KPUs也减半(向上舍入)。

注意

可以引用最大containerCPUUtilization超过 1 分钟的时间段来查找与用于缩放操作的数据点的相关性,但没有必要反映操作初始化的确切时刻。

Managed Service for Apache Flink 不会将应用程序的CurrentParallelism价值降低到低于应用程序设置的Parallelism值。

当 Managed Service for Apache Flink 正在扩展您的应用程序时,它将处于状态。AUTOSCALING您可以使用 DescribeApplication ListApplications操作检查当前的应用程序状态。当服务扩展您的应用程序时,您可以使用的唯一有效API操作是 StopApplicationForce参数设置为true

您可以使用 AutoScalingEnabled 属性(FlinkApplicationConfiguration 的一部分)启用或禁用自动扩展行为。您的 Amazon 账户将按照 Apache Flink 提供的托管服务收费,这取决于您的应用程序parallelismparallelismPerKPU设置。KPUs活动激增会增加您的 Managed Service for Apache Flink 费用。

有关定价的更多信息,请参阅Amazon Managed Service for Apache Flink 定价

请注意有关应用程序扩展的以下内容:

  • 默认情况下,将会启用自动扩展。

  • 伸缩不适用于 Studio 笔记本。但是,如果您将 Studio 笔记本部署为具有持久状态的应用程序,则伸缩将适用于已部署的应用程序。

  • 您的应用程序的默认限制为 64 KPUs。有关更多信息,请参阅 适用于 Apache Flink 和 Studio 笔记本配额的托管

  • 在自动扩展更新应用程序并行度时,应用程序将会发生停机。为了避免这种停机,请执行以下操作:

实现自定义自动缩放

如果您想对自动缩放进行更精细的控制或使用其他触发指标containerCPUUtilization,则可以使用以下示例:

  • AutoScaling

    此示例说明了如何使用与 Apache Flink 应用程序不同的 CloudWatch 指标(包括来自亚马逊MSK和亚马逊 Kinesis Data Streams 的指标,用作源或接收器)来扩展适用于 Apache Flink 的托管服务 Flink 应用程序。

有关更多信息,请参阅 Apache Flink 的增强监控和自动扩展

实现定时自动缩放

如果您的工作负载会随着时间的推移遵循可预测的配置文件,那么您可能更愿意先发制人地扩展 Apache Flink 应用程序。这会按计划的时间扩展您的应用程序,而不是根据指标进行被动扩展。要设置在一天中的固定时间向上和向下扩展,可以使用以下示例: