Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有多个 EC2 实例为同一个微服务运行,该微服务有一个 Kinesis 消费者正在运行(使用 KCL)。
我的问题是,当 Kinesis 流收到一个新事件时,由于所有消费者都在轮询,所有实例的消费者是否会消费同一个事件?
KCL 的设计使得每个分片仅由一个工作人员处理 - 内置的租约机制是提供此功能的关键。
虽然在正常情况下,每个消费者只会收到它拥有租约的分片的消息,但有一些边缘情况(通常由连接超时/中断或主机死亡/停止响应引起)值得考虑,这可能会导致双重处理来自流的消息。
举个具体的例子:如果一个工作人员未能续订租约(通常是由工作人员主机和 DynamoDB 之间的连接问题引起),则可能另一个工作人员将获得该租约并开始处理,而原来的工作人员仍在工作
该事件将仅由一位消费者消费