这里的顺序指的是数据写入的数据,并不是数据发送的顺序。
红色为:leader。青色为:follower。黑色为:宕机。黄色为:恢复。
比如:
- 数据1 写入 broker1,broker2,broker3。完成提交
- 数据2进行写操作,leader写入后宕机(还有没对副本进行同步),数据2 进行retry。
- 此时broker2 (replica) 已经变更为leader。
- 写入数据3成功(broker2,broker3同步完成)。
- broker1尝试恢复。
- broker1恢复成功,需要从同步成功的offset起,truncate所有数据。
- broker1(replica)与leader进行同步。
- 数据2 retry成功。此时的数据的顺序就是132。
所以这里的顺序不是数据发送顺序。