KCL 不处理来自 AWS 运动流的三个分片中的两个的记录
KCL not processing records from two out of three shards of AWS kinesis stream
我们有一个包含三个分片的运动流,我们的运动应用程序有三个实例。我们能够看到记录已发布到我们的所有三个分片,但我们的运动应用程序只能处理来自一个分片的记录。收听其他两个分片的工作人员不断进入睡眠状态。
传出字节为零的一个分片的云监视指标
在 4 月 28 日之前,我们的 kinesis 应用程序能够处理来自所有三个分片的记录
知道是什么原因造成的吗?
Kinesis 在内部存储上读取 getRecords api 调用记录时发生超时。当您的写入率很高时,可能会出现内部运动因超时而无法获取所有新记录的情况。当您正在写入大量记录但读取速度低于默认的每秒 1 条时,通常会出现这种情况。 Kinesis 保证 它将能够 return 所有记录,当您的读取速率 >= 1 getRecord/second(它可能是每秒最多 5 个)否则,您的分片迭代器年龄将继续增加。
注意 - 如果您阅读速度较慢,您可以获得所有记录,但以防您的分片迭代器年龄过大,即。你落后了,你必须增加读取的频率,那时候你就可以控制分片迭代器的年龄
Shard Iterator age 是一个指标,您可以在其中了解您的读取落后于 shard/stream 中的最新记录的程度。如果您的迭代器年龄为 10 小时,则表示您当前正在读取 10 小时前写入分片的记录。
此外,流不是队列。您不能像在 SQS(visibilityTimeout) 中那样等待处理完成到检查点。你必须立即检查点或者根本不检查点
我们有一个包含三个分片的运动流,我们的运动应用程序有三个实例。我们能够看到记录已发布到我们的所有三个分片,但我们的运动应用程序只能处理来自一个分片的记录。收听其他两个分片的工作人员不断进入睡眠状态。
传出字节为零的一个分片的云监视指标
在 4 月 28 日之前,我们的 kinesis 应用程序能够处理来自所有三个分片的记录
知道是什么原因造成的吗?
Kinesis 在内部存储上读取 getRecords api 调用记录时发生超时。当您的写入率很高时,可能会出现内部运动因超时而无法获取所有新记录的情况。当您正在写入大量记录但读取速度低于默认的每秒 1 条时,通常会出现这种情况。 Kinesis 保证 它将能够 return 所有记录,当您的读取速率 >= 1 getRecord/second(它可能是每秒最多 5 个)否则,您的分片迭代器年龄将继续增加。 注意 - 如果您阅读速度较慢,您可以获得所有记录,但以防您的分片迭代器年龄过大,即。你落后了,你必须增加读取的频率,那时候你就可以控制分片迭代器的年龄
Shard Iterator age 是一个指标,您可以在其中了解您的读取落后于 shard/stream 中的最新记录的程度。如果您的迭代器年龄为 10 小时,则表示您当前正在读取 10 小时前写入分片的记录。
此外,流不是队列。您不能像在 SQS(visibilityTimeout) 中那样等待处理完成到检查点。你必须立即检查点或者根本不检查点