1. 1.当某个topicreplication-factorNN大于1时,每个Partition都会有N个副本(Replica)。kafkareplica包含leaderfollower
  2. 2.Replica的个数小于等于Broker的个数,也就是说,对于每个Partition而言,每个Broker上最多只会有一个Replica,因此可以使用Broker id 指定PartitionReplica
  3. 3.所有PartitionReplica默认情况会均匀分布到所有Broker上。
    示例命令:bin/kafka-topics.sh --create --bootstrap-server kafka1:9092,kafka1:9092,kafka0:9092 --topic sg3-Logined --partitions 6 --replication-factor 2
  1. 分区中的所有副本统称为ARAssigned Repllicas)。所有与leader副本保持一定程度同步的副本(包括Leader)组成ISRIn-Sync Replicas),ISR集合是AR集合中的一个子集。
  2. 消息会先发送到leader副本,然后follower副本才能从leader副本中拉取消息进行同步,同步期间内follower副本相对于leader副本而言会有一定程度的滞后。
  3. 前面所说的“一定程度”是指可以忍受的滞后范围,这个范围可以通过参数进行配置。
  4. leader副本同步滞后过多的副本(不包括leader)副本,组成OSR(Out-Sync Relipcas),由此可见:AR=ISR+OSR。在正常情况下,
  5. 所有的follower副本都应该与leader副本保持一定程度的同步,即AR=ISR,OSR集合为空。
  6.  
  7. Leader副本负责维护和跟踪ISR集合中所有的follower副本的滞后状态,当follower副本落后太多或者失效时,leader副本会吧它从ISR集合中剔除。
  8. 如果OSR集合中follower副本“追上”了Leader副本,之后再ISR集合中的副本才有资格被选举为leader,而在OSR集合中的副本则没有机会(这个原则可以通过修改对应的参数配置来改变)
  1. ISR指的是所有与leader副本保持一定程度同步的副本(包括Leader)组成ISRIn-Sync Replicas
  2.  
  3. HWHigh Watermak的缩写, 俗称高水位,它表示了一个特定消息的偏移量(offset),消费之只能拉取到这个offset之前的消息。
  4. leader收到所有ISR中的replicationACK后,增加HW(High Watermark,最后commitoffset)并向producer发送ACK
  5.  
  6. LWLow Watermark的缩写,俗称“低水位”,代表AR集合中最小的logStartOffset值,副本的拉取请求(FetchRequest,它有可能触发新建日志分段而旧的的被清理,进而导致logStartoffset的增加)
  7. 和删除请求(DeleteRecordRequest)都可能促使LW的增长。
  8.  
  9. LEOLog End Offset的缩写,它表示了当前日志文件中下一条待写入消息的offset,如图offset9的位置即为当前日志文件LEO,LEO的大小相当于当前日志分区中最后一条消息的offset值加1
  10. 分区ISR集合中的每个副本都会维护自身的LEO,而ISR集合中最小的LEO即为分区的HW,对消费这而言只能消费HW之前的消息。
  11.  
  12. LSO特指LastStableOffset。它具体与kafka的事物有关。

 

 

 

 

参考:

https://blog.csdn.net/qq_37502106/article/details/80271800

https://blog.csdn.net/lukabruce/article/details/101012815

版权声明:本文为-courage原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/-courage/p/15194986.html