收到以下错误:
com.amazonaws.services.kinesis.clientlibrary.exceptions.ShutdownException: Can't update checkpoint - instance doesn't hold the lease for this shard
这可能是什么原因?
收到以下错误:
com.amazonaws.services.kinesis.clientlibrary.exceptions.ShutdownException: Can't update checkpoint - instance doesn't hold the lease for this shard
这可能是什么原因?
这似乎是和运动问题。出于调试原因,您可以为LeaseManager
. 还有一些额外的消息应该指示检查点请求的状态。需要考虑的重要一点是failoverTimeMillis
. 您可以尝试增加failoverTimeMillis
this 的值可能有助于避免以下问题。更详细的解释在这个 GitHub issue中。
这个问题的根本原因是,有时 KCL Worker 丢失了一个租约,然后在丢弃该分片的旧租约之前重新获取特定分片的新租约,然后它继续持有仍然持有旧并发令牌的旧租约。不匹配的并发令牌阻止了检查点,但 Worker 永远不会丢弃租约,因为租约清理逻辑只比较 shard-id。
减轻此问题影响的一种方法是增加连接器库中默认设置为 1000 毫秒的故障转移时间米利斯。增加 failoverTimeMillis 将减少 Worker 丢失然后立即重新获得自己的租约的机会。