1

我有我的应用程序的两个实例和 kinesis 中的两个分片。

设想,

  1. 启动实例 1. 应用程序获得两个分片。一切都好。

  2. 几次后启动实例 2。当实例 1 处理来自两个分片的记录时,然后在后台我有关于在 shard2 上关闭的信息。

Invoking shutdown() for shard shardId-0000000000XX, concurrencyToken: 07b1aba8-0aa3-48c4-9992-XXXXXXXX, original Shutdown reason: ZOMBIE. childShards:null

我在完成流程记录后创建了检查点,现在我为第二个分片释放了租约,然后我无法创建检查点,并且实例 2 立即从 kinesis 收到了新记录。

我尝试在实例 1 中关闭块方法以等待完成记录处理,但实例 2 同时从 kinesis 接收记录。

如何覆盖任何方法以保持分片 2 的租约并优雅地完成处理记录?

4

0 回答 0