1

我有多个 EC2 实例为同一个微服务运行,该微服务有一个 Kinesis 消费者正在运行(使用 KCL)。

我的问题是,当 Kinesis 流收到一个新事件时,由于所有消费者都在轮询,所有实例的消费者是否会消费同一个事件?

4

2 回答 2

2

KCL 的设计使得每个分片仅由一个工作人员处理 - 内置的租约机制是提供此功能的关键。

虽然在正常情况下,每个消费者只会收到它拥有租约的分片的消息,但有一些边缘情况(通常由连接超时/中断或主机死亡/停止响应引起)值得考虑,这可能会导致双重处理来自流的消息。

举个具体的例子:如果一个工作人员未能续订租约(通常是由工作人员主机和 DynamoDB 之间的连接问题引起),则可能另一个工作人员将获得该租约并开始处理,而原来的工作人员仍在工作

于 2018-07-03T18:30:15.367 回答
1

该事件将仅由一位消费者消费

于 2018-06-19T09:16:28.450 回答