亚马逊AWS官方博客

Amazon Kinesis Data Streams 按需模式 – 无需管理容量即可大规模流式传输数据

我们已推出 Amazon Kinesis Data Streams 按需模式,这是一种新的容量模式。这种容量模式消除了为流式工作负载预置和管理容量的需要。

Kinesis Data Streams 是一种完全托管的无服务器服务,用于大规模实时处理流数据。Kinesis Data Streams 可以从任意数量的源获取任意数量的数据,然后根据需要进行扩展和缩减。创建新的数据流很容易,因为我们在 2013 年 11 月发布了 Kinesis Data Streams。 首先,您只需指定必须预置流的分区数。

分区是在 Kinesis Data Streams 中定义容量的一种方式。每个分区可以摄取 1 MB/s 和 1,000 条记录/秒,输出速度高达 2 MB/s。您可以使用 Kinesis Data Streams API 添加或删除流的分区,以根据其工作负载的整体需求调整流容量。这让您可以确保生产者和使用者应用程序不会受到任何限制。

随着客户广泛采用数据流,数据流量可能在几分钟内增加数百万个事件的工作负载变得越来越普遍。对于这些不稳定的流量模式,客户需要仔细规划容量、监控吞吐量,并在某些情况下开发自动更改 Kinesis Data Streams 流容量的流程。

Kinesis Data Streams 按需模式
这就是今天我们宣布推出 Kinesis Data Streams 按需模式的原因。这种新的容量模式消除了为流数据预置和管理容量的需要。使用 Kinesis Data Streams 按需模式自动扩展容量以响应不断变化的数据流量。客户需要以按吞吐量付费的方式,为写入、读取和存储在流中的数据(以 GB 为单位)付费。

按需模式下的数据流具有高持久性、高可用性、低延迟、安全性和深度 AWS 集成,这与 Kinesis Data Streams 已经提供的特性相同。此外,没有用于写入或读取数据的新 API。所有现有的 Kinesis Data Streams 集成都在按需模式下工作。

Kinesis Data Streams 使用分区键在分区之间分发数据。正因为如此,在使用 Kinesis Data Streams 按需模式时,您仍然必须为每条记录指定一个分区键以将数据写入数据流,就像您今天在使用预置模式的 Kinesis Data Streams 中所做的那样。在 Kinesis Data Streams 按需模式中,数据流会自动调整以处理数据分布不均匀的模式。但是您必须小心,任何分区键都不会超过分区的限制。如果发生这种情况,您将收到写入限制,然后您可以重试这些请求。

当使用 Kinesis Data Streams 按需模式创建新数据流时,它会以 4 MB/s 的默认容量和每秒 4,000 条记录的速度创建用于写入操作。Kinesis Data Streams 按需模式可以自动扩展到 200 MB/s 和每秒 200,000 条记录以进行写入操作。

Kinesis Data Streams 按需模式最多可容纳过去 30 天内观察到的峰值写入吞吐量的两倍。当数据流的写入吞吐量达到新的峰值时,Kinesis Data Streams 会自动扩展数据流的容量。

例如,如果您的数据流的写入吞吐量在 10 MB/s 到 40 MB/s 之间变化,Kinesis Data Streams 将确保您可以轻松突增至峰值的两倍,即 80 MB/s。而且,如果同一数据流稍后达到 50 MB/s 的新峰值,则 Kinesis Data Streams 将确保有足够的容量,可以达到 100 MB/s 的摄取速度。但是,如果您的流量在 15 分钟内增长到前一个峰值的两倍以上,则可能会发生写入限制。

何时使用 Kinesis Data Streams 按需模式
按需模式非常适合工作负载未知或可变的客户,或者单纯不想处理容量管理的客户。按需模式最适合分区键均匀分布的工作负载。例如,您运行的手机游戏一周或一天中的流量是变化的,因为客户主要在晚上或周末玩游戏。或者,您运行一个托管现场表演的流媒体平台,您会看到需求突然增加,这取决于您拥有的访客人数。

此外,您每天可以在按需模式和预置模式之间切换两次。例如,您运营了一个具有可预测流量的电子商务网站。但是,从下个月开始,全球将推出多项营销活动。您不知道这些活动会对网站流量产生什么影响。将您的 Kinesis Data Streams 切换到按需模式,现在您就可以享受数据流的自动化容量规划和管理。

开始使用 Kinesis Data Streams 按需模式
从 AWS 控制台、AWS 开发工具包AWS Command Line Interface (CLI)AWS CloudFormation 使用 Kinesis Data Streams 按需模式创建新数据流。

要从控制台创建数据流,请访问 Kinesis 控制台并进行创建。选择容量模式时,选择按需

创建数据流

页面末尾显示了新数据流的所有设置。可以在创建数据流后更改这些设置。

数据流设置

我们来了解一下实际操作!
在本演示中,我想向您展示新 Kinesis Data Streams 功能的工作原理。查看以下 Amazon CloudWatch 图表,其中最好地描述了这种情况。绿线表示成功摄取到流中的字节数,红线表示受限流量所占的百分比。

首先,我们将从预置了五个分区的流开始。在前三分钟,我们将发送 4 MB/s 的负载。您可以看到,流可以处理负载。

在时间戳 21:19 处,我们将负载增加到 12 MB/s。现在,流将无法处理负载,并开始节流(红线开始攀升,最高达到被节流请求的 60% 处)。

增加预置流的负载

在时间戳 21:23 处,我们将流容量从预置更改为按需。您可以在不影响流的情况下即时执行此操作。请注意,从一种容量模式转换为另一种容量模式时,流处理负载所需的时间非常短。

几分钟后(时间戳 21:24 处),随着流开始纵向扩展,限制开始下降。流容量首先增加一倍,达到 10 个分区(时间戳 21:26 处),并且不断纵向扩展,直到每个分区的负载低于 0.5 MB/s。这样,如果流突然收到双倍的负载,那么它就有足够的容量来处理它。

更改为按需模式

在时间戳 21:26 处,流中的负载增加到 18 MB/s。您可以看到绿线攀升至 350,000 条记录 — 没有限制,并且流结束此演示时有 40 个打开的分区。这意味着,如果流突然接收到 40 MB/s 的负载,那么它可以毫无问题地处理它。

增加负载

现已推出!
Amazon Kinesis Data Streams 按需模式在全球所有商业区域推出。

您可以在 Amazon Kinesis Data Streams 开发人员指南 中了解有关容量模式的更多信息。

Marcia