View a markdown version of this page

迭代器过期异常错误 - Amazon Kinesis Data Streams

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

迭代器过期异常错误

迭代器过期异常错误(HTTP 400)是在分片迭代器过期时发生的,在调用 GetRecords 时不再用于检索流记录。读取操作之间因为长时间运行数据处理任务、网络问题或应用程序停机而产生延迟时,就会发生这种情况。

注意

分片迭代器在发出后 5 分钟有效。

处理异常的建议
  • 在分片迭代器到期之前进行刷新。

  • 整合错误处理以获取新的迭代器。

  • 利用 Kinesis Client Library(KCL),该服务可自动管理分片迭代器的到期时间。

有关更多信息,请参阅什么是 AWS Fault Injection Service?

进行基础实验
  1. 创建实验模板:使用 AWS FIS 控制台。

  2. 选择操作:使用 aws:kinesis:inject-api-expired-iterator-exception 操作。

  3. 配置目标:指定 IAM 角色及 Kinesis Data Streams 操作。

  4. 设置持续时间:最初测试从 5-10 分钟开始。

  5. 添加停止条件:的停止条件 AWS FIS

  6. 运行实验:监控应用程序的行为。

操作详细信息
  • 资源类型:IAM 角色 ARN

  • 目标操作GetRecords

  • 错误代码ExpiredIteratorException(HTTP 400)

  • 描述:提供的迭代器超出了允许的最大期限,模拟了记录处理速度太慢或检查点操作逻辑失败的场景。

参数
  • IAM 角色 ARN:应用程序用于 Kinesis Data Streams 操作的角色。

  • 操作:目标操作:GetRecords

  • 资源列表:特定的直播名称或 ARNs。

  • 持续时间:实验的持续时间。此项可配置。

  • 强度:要施加限制的请求的百分比。

所需的权限
  • kinesis:InjectApiError