Dawn's Blogs

分享技术 记录成长

0%

Kafka学习 (2) 集群

副本

副本是为了为主题中的分区创建多个备份,多个副本在kafka集群的多个broker中,会有⼀个副本作为leader,其他是follower。

下图是拥有2个分区,3个副本的主题:

副本

  • leader:kafka的写和读的操作,都发⽣在leader上。leader负责把数据同步给follower。当leader挂了,经过主从选举,从多个follower中选举产⽣⼀个新的leader。
  • follower:接收leader同步的数据,在leader宕机后参与选举。
  • isr:可以同步和已同步的节点会被存入到isr集合中。如果isr中的节点性能较差,会被踢出isr集合(不能参与选举)。

集群消费

集群消费

图中Kafka集群有两个broker,每个broker中有多个partition。

  • 一个partition只能被一个消费组里的某一个消费者消费,从而保证消费顺序

  • Kafka只在partition的范围内保证消息消费的局部顺序性,不能在同⼀个topic中的多个partition中保证总的消费顺序性。

  • 一个消费者可以消费多个partition,但是消费者组中的消费者数量不能比一个topic中的partition数量多,否则多出来的消费者消费不到消息。

  • 如果消费者宕机,会触发rebalance机制,让其他消费者来消费该分区。