碎片[shardId-000000000000]未关闭.如果我们在reshard操作正在进行时构建了分片列表,就会发生这种情况

use*_*553 4 amazon-kinesis

从Amazon kinesis Stream获取数据时出现此错误.我正在做以下步骤

  1. 创造亚马逊kinesis蒸汽
  2. 使用putRecordapi来放置数据AmazonKinesisClient.
  3. 然后使用Worker Of KCL库从流中获取数据.

az3*_*az3 9

有几种可能性.

  1. 在您命令创建流后,您是否等待了足够长的时间才能完成?有时,可能需要10分钟才能创建分片.由于您设法使用putRecord方法,因此流和分片应处于活动状态.
  2. 您是否正确配置了DynamoDB?我假设您正在使用它进行Kinesis应用程序同步.请参阅DynamoDB表的记录内部.所有列(即,leaseKey,checkpoint,leaseOwner,parentShardId等)是否正确填充?也许数据库中的数据是旧的,所以您可能正在访问一个封闭的分片?

您提到的例外情况如下:https://github.com/awslabs/amazon-kinesis-client/blob/master/src/main/java/com/amazonaws/services/kinesis/clientlibrary/lib/worker/ShardSyncer.java #L193

尝试删除DynamoDB表,让Kinesis Application(KCL)创建一个全新的表.链接:https://console.aws.amazon.com/dynamodb/