同一个分区真的永远不会被一个组上的多个消费者同时使用吗



假设一个主题有两个分区。我们在同一组中有两个消费者,他们都来自该主题:消费者a消费分区0,消费者B消费分区1。消费者A是消费者小组的组长。

这时,消费者B收到了一批来自该主题的消息,例如消息:X,Y。紧接着,消费者B就停了下来。

过了一段时间,消费者a认为消费者B已经死了,并决定从分区1重新平衡和消费。它获取消息:X、Y、Z(按顺序(,然后写入数据库。

之后,使用者B恢复执行,不知道已经过了一段时间,并继续编写消息X,Y,覆盖Z的效果。然后消费者B完全失败了。

有可能吗?如果是,那么使用消息和向数据库追加销售的简单方法可能不安全。

消费者A认为消费者B已经死了,决定重新平衡并从分区1消费。它得到消息:X、Y、Z(按顺序(,然后写入数据库

好吧,假设也为每个消息提交偏移

如果B开始备份,它将在最近提交的值之后开始读取偏移量,并且不会重新读取以前尝试过的数据,除非用户被手动查找到该位置。

最新更新