Amazon Kinesis Data Streams
开发人员指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

Amazon Kinesis Data Streams 的使用者

使用者从 Kinesis stream 获取数据记录。称为 Amazon Kinesis Data Streams application 的使用者处理来自流的数据记录。

注意

要将流记录直接保存到 Amazon S3、Amazon Redshift 或 Amazon Elasticsearch Service 等存储服务,您可以使用 Kinesis Data Firehose 传输流而不是创建使用器应用程序。有关更多信息,请参阅 创建 Amazon Kinesis Firehose 传输流

每个使用者使用分片迭代器从特定分片进行读取。分片迭代器表示流中使用者读取的位置。开始从流中读取时,使用者获取分片迭代器,这可用于更改使用者从流中读取数据的位置。当使用者执行读取操作时,它将收到一批基于由分片迭代器指定的位置的数据记录。

每个使用者必须有一个唯一名称,其范围限定于应用程序使用的 AWS 账户和区域。此名称用作 Amazon DynamoDB 中的控制表名称和 Amazon CloudWatch 指标的命名空间。在您的应用程序启动时,它将创建一个 Amazon DynamoDB 表来存储应用程序状态,连接到指定的流,然后开始使用流中的数据。您可以使用 CloudWatch 控制台查看 Kinesis Data Streams 指标。

您可以通过将使用者添加到 AMI 来将其部署到 EC2 实例。您可以通过在 Auto Scaling 组下的多个 EC2 实例上运行使用者来扩展它。使用 Auto Scaling 组有助于在 EC2 实例发生故障时自动启动新的实例,还可以在应用程序上的负载随着时间的推移发生更改时弹性扩展实例数。Auto Scaling 组可确保特定数目的 EC2 实例始终运行。要在 Auto Scaling 组中触发扩展事件,您可以指定指标(例如 CPU 和内存使用率)来扩大或缩小处理流中数据的 EC2 实例的数目。有关更多信息,请参阅 Amazon EC2 Auto Scaling 用户指南

您可以使用 Kinesis Client Library (KCL) 按 EC2 实例队列上运行的工作程序队列来简化流的并行处理。KCL 简化用于从流的分片中读取的代码的编写并确保为流中的每个分片分配一个工作程序。KCL 还通过提供检查点功能来提供容错帮助。开始使用 KCL 的最佳方式是查看 使用 Kinesis Client Library 开发 Amazon Kinesis Data Streams 使用者 中的示例。