同一 Kinesis 消费者在多个 EC2 实例上运行

3

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

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

2个回答

2

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

尽管在正常情况下,每个消费者只会接收到其拥有租赁的分片的消息,但值得考虑一些边缘情况(通常是由于连接超时/中断或主机死机/停止响应引起),可能导致对来自流的消息进行重复处理。

以具体示例说明:如果工作程序未能更新租约(通常是由于工作程序主机和DynamoDB之间的连接问题),则可能会另一个工作程序获取该租赁并开始处理,而原始工作程序仍在处理工作。


1

该事件只会被一个消费者使用


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接