我有一个.war,我们有一个Kinesis应用程序,它处理一个包含单个分片的流。我们在生产中部署了两个战争实例。结果,我最终会有两名工作人员使用一个分片处理单个流。处理此问题的推荐方法是什么?我尝试在我的开发机器上本地部署两个战争,从某种意义上说,每个记录只被处理一次似乎没问题。我知道AWS建议每个分片一个实例。来自他们的文档:
Typically, when you use the KCL, you should ensure that the number of instances does not exceed the number of shards (except for failure standby purposes). Each shard is processed by exactly one KCL worker and has exactly one corresponding record processor, so you never need multiple instances to process one shard.
答案 0 :(得分:2)
大多数时候你可能都很好。 KCL将为您处理此事。
http://docs.aws.amazon.com/kinesis/latest/dev/kinesis-record-processor-ddb.html
您希望检查工作人员在处理某些记录后但在检查点之前是否死亡的情况。在这种情况下,接管的工作人员将重新处理一些记录(从上一个检查点)。 您的应用程序可以处理记录的重新处理吗?
请参阅:http://docs.aws.amazon.com/kinesis/latest/dev/kinesis-record-processor-duplicates.html