zoukankan      html  css  js  c++  java
  • 关于kafka中ISR、AR、HW、LEO、LSO、LW的含义详解

    一、kafka replication 

    1.当某个topic的replication-factor为N且N大于1时,每个Partition都会有N个副本(Replica)。kafka的replica包含leader与follower。
    2.Replica的个数小于等于Broker的个数,也就是说,对于每个Partition而言,每个Broker上最多只会有一个Replica,因此可以使用Broker id 指定Partition的Replica。
    3.所有Partition的Replica默认情况会均匀分布到所有Broker上。
    示例命令:bin/kafka-topics.sh --create --bootstrap-server kafka1:9092,kafka1:9092,kafka0:9092 --topic sg3-Logined --partitions 6 --replication-factor 2

    二、Kafka中的ISR、AR解析:

    分区中的所有副本统称为AR(Assigned Repllicas)。所有与leader副本保持一定程度同步的副本(包括Leader)组成ISR(In-Sync Replicas),ISR集合是AR集合中的一个子集。
    消息会先发送到leader副本,然后follower副本才能从leader副本中拉取消息进行同步,同步期间内follower副本相对于leader副本而言会有一定程度的滞后。
    前面所说的“一定程度”是指可以忍受的滞后范围,这个范围可以通过参数进行配置。
    与leader副本同步滞后过多的副本(不包括leader)副本,组成OSR(Out-Sync Relipcas),由此可见:AR=ISR+OSR。在正常情况下,
    所有的follower副本都应该与leader副本保持一定程度的同步,即AR=ISR,OSR集合为空。
    
    Leader副本负责维护和跟踪ISR集合中所有的follower副本的滞后状态,当follower副本落后太多或者失效时,leader副本会吧它从ISR集合中剔除。
    如果OSR集合中follower副本“追上”了Leader副本,之后再ISR集合中的副本才有资格被选举为leader,而在OSR集合中的副本则没有机会(这个原则可以通过修改对应的参数配置来改变)

    三、kafka中的ISR、HW、LEO、LW、LSO等分别代表什么?

    ISR指的是所有与leader副本保持一定程度同步的副本(包括Leader)组成ISR(In-Sync Replicas)
    
    HW是High Watermak的缩写, 俗称高水位,它表示了一个特定消息的偏移量(offset),消费之只能拉取到这个offset之前的消息。
    leader收到所有ISR中的replication的ACK后,增加HW(High Watermark,最后commit的offset)并向producer发送ACK。
    
    LW是Low Watermark的缩写,俗称“低水位”,代表AR集合中最小的logStartOffset值,副本的拉取请求(FetchRequest,它有可能触发新建日志分段而旧的的被清理,进而导致logStartoffset的增加)
    和删除请求(DeleteRecordRequest)都可能促使LW的增长。
    
    LEO是Log End Offset的缩写,它表示了当前日志文件中下一条待写入消息的offset,如图offset为9的位置即为当前日志文件LEO,LEO的大小相当于当前日志分区中最后一条消息的offset值加1。
    分区ISR集合中的每个副本都会维护自身的LEO,而ISR集合中最小的LEO即为分区的HW,对消费这而言只能消费HW之前的消息。
    
    LSO特指LastStableOffset。它具体与kafka的事物有关。

    四 、Data Replication何时Commit?

    参考:

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

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

  • 相关阅读:
    Random 种子问题
    Matrix issue
    Two sum.
    Best Time to Buy and Sell Stock
    Maximum difference between two elements
    二分查找法的实现和应用汇总
    Why you want to be restrictive with shrink of database files [From karaszi]
    Palindrome
    NetBeans vs Eclipse 之性能参数对比 [java060515]
    国内各大互联网公司相关技术站点不完全收录[转]
  • 原文地址:https://www.cnblogs.com/-courage/p/15194986.html
Copyright © 2011-2022 走看看