5

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

  1. 创建亚马逊 kinesis Steam
  2. putRecord使用api放置数据AmazonKinesisClient
  3. 然后使用 KCL 库的 Worker 从流中获取数据。
4

1 回答 1

10

有几种可能性。

  1. 在您下令创建流之后,您是否等待足够长的时间才能完成?有时,创建分片可能需要 10 分钟。由于您设法使用putRecord方法,因此流和分片应该处于活动状态。
  2. 您是否正确配置了 DynamoDB?我假设您将它用于 Kinesis 应用程序同步。查看 DynamoDB 表的记录内部。是否正确填写了所有列(即leaseKey、检查点、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/

于 2014-12-15T14:11:17.337 回答