本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
迭代器过期异常错误
迭代器过期异常错误(HTTP 400)是在分片迭代器过期时发生的,在调用 GetRecords 时不再用于检索流记录。读取操作之间因为长时间运行数据处理任务、网络问题或应用程序停机而产生延迟时,就会发生这种情况。
注意
分片迭代器在发出后 5 分钟有效。
处理异常的建议
-
在分片迭代器到期之前进行刷新。
-
整合错误处理以获取新的迭代器。
-
利用 Kinesis Client Library(KCL),该服务可自动管理分片迭代器的到期时间。
有关更多信息,请参阅什么是 AWS Fault Injection Service?
进行基础实验
-
创建实验模板:使用 AWS FIS 控制台。
-
选择操作:使用
aws:kinesis:inject-api-expired-iterator-exception操作。 -
配置目标:指定 IAM 角色及 Kinesis Data Streams 操作。
-
设置持续时间:最初测试从 5-10 分钟开始。
-
添加停止条件:的停止条件 AWS FIS。
-
运行实验:监控应用程序的行为。
操作详细信息
-
资源类型:IAM 角色 ARN
-
目标操作:
GetRecords -
错误代码:
ExpiredIteratorException(HTTP 400) -
描述:提供的迭代器超出了允许的最大期限,模拟了记录处理速度太慢或检查点操作逻辑失败的场景。
参数
-
IAM 角色 ARN:应用程序用于 Kinesis Data Streams 操作的角色。
-
操作:目标操作:
GetRecords -
资源列表:特定的直播名称或 ARNs。
-
持续时间:实验的持续时间。此项可配置。
-
强度:要施加限制的请求的百分比。
所需的权限
-
kinesis:InjectApiError