为什么我的 Kinesis Data Stream 返回了一个 500 内部服务器错误?

1 分钟阅读
0

我想解决 Amazon Kinesis Data Stream 500 内部服务器错误或 503 服务不可用错误。

简短描述

生成到 Kinesis 数据流时,可能会出现以下内部错误:

  • PutRecordPutRecords 会返回 AmazonKinesisException 500AmazonKinesisException 503 错误,且错误率持续几分钟均超过 1%
  • SubscribeToShard.SuccessGetRecords 会返回 AmazonKinesisException 500AmazonKinesisException 503 错误,且错误率持续几分钟均超过 1%

要对这些内部错误进行故障排除,请完成以下步骤:

  1. 计算错误率。
  2. 实施重试机制。

解决方法

计算错误率

查看 PutRecord.SuccessGetRecord.Success 的时间段是否存在明显的下降。可以在监控选项卡下查看这些指标。如果出现明显下降,请计算错误率,确定 Kinesis 数据流问题的严重程度。
要计算错误率,请计算 PutRecord.SuccessGetRecord.Success 的平均值。

实施重试机制

确认错误率降至 0.1% 以下。Kinesis Data Streams 允许以低错误率进行高吞吐量写入。平均错误率通常低于 0.01%。

如果您自己编写使用器或创建器程序,请在应用程序代码中实施重试机制。有关实施重试机制的更多信息,请参阅 Implementing efficient and reliable producers with the Amazon Kinesis Producer Library 中的 Retries 部分内容。

如果错误率持续几分钟均超过 1%,请联系 AWS Support。请在沟通时提供以下信息:

  • 通过 Data Streams 读取或写入数据的应用程序
  • Kinesis 数据流中的分片数量
  • 服务器端加密设置
  • 受影响的特定分片 ID
  • 观察到成功率下降的时间范围
  • 报告内部故障的请求 ID

相关信息

Developing producers using the Amazon Kinesis Producer Library

Developing KCL 2.x consumers

AWS 官方
AWS 官方已更新 6 个月前