关于kafka中ISR、AR、HW、LEO、LSO、LW的含义详解
生活随笔
收集整理的這篇文章主要介紹了
关于kafka中ISR、AR、HW、LEO、LSO、LW的含义详解
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一、kafka replication
1.當(dāng)某個topic的replication-factor為N且N大于1時,每個Partition都會有N個副本(Replica)。kafka的replica包含leader與follower。 2.Replica的個數(shù)小于等于Broker的個數(shù),也就是說,對于每個Partition而言,每個Broker上最多只會有一個Replica,因此可以使用Broker id 指定Partition的Replica。 3.所有Partition的Replica默認(rèn)情況會均勻分布到所有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解析:
分區(qū)中的所有副本統(tǒng)稱為AR(Assigned Repllicas)。所有與leader副本保持一定程度同步的副本(包括Leader)組成ISR(In-Sync Replicas),ISR集合是AR集合中的一個子集。 消息會先發(fā)送到leader副本,然后follower副本才能從leader副本中拉取消息進(jìn)行同步,同步期間內(nèi)follower副本相對于leader副本而言會有一定程度的滯后。 前面所說的“一定程度”是指可以忍受的滯后范圍,這個范圍可以通過參數(shù)進(jìn)行配置。 與leader副本同步滯后過多的副本(不包括leader)副本,組成OSR(Out-Sync Relipcas),由此可見:AR=ISR+OSR。在正常情況下, 所有的follower副本都應(yīng)該與leader副本保持一定程度的同步,即AR=ISR,OSR集合為空。 Leader副本負(fù)責(zé)維護(hù)和跟蹤ISR集合中所有的follower副本的滯后狀態(tài),當(dāng)follower副本落后太多或者失效時,leader副本會吧它從ISR集合中剔除。 如果OSR集合中follower副本“追上”了Leader副本,之后再ISR集合中的副本才有資格被選舉為leader,而在OSR集合中的副本則沒有機(jī)會(這個原則可以通過修改對應(yīng)的參數(shù)配置來改變)
三、kafka中的ISR、HW、LEO、LW、LSO等分別代表什么?
ISR指的是所有與leader副本保持一定程度同步的副本(包括Leader)組成ISR(In-Sync Replicas) HW是High Watermak的縮寫, 俗稱高水位,它表示了一個特定消息的偏移量(offset),消費(fèi)之只能拉取到這個offset之前的消息。 leader收到所有ISR中的replication的ACK后,增加HW(High Watermark,最后commit的offset)并向producer發(fā)送ACK。 LW是Low Watermark的縮寫,俗稱“低水位”,代表AR集合中最小的logStartOffset值,副本的拉取請求(FetchRequest,它有可能觸發(fā)新建日志分段而舊的的被清理,進(jìn)而導(dǎo)致logStartoffset的增加) 和刪除請求(DeleteRecordRequest)都可能促使LW的增長。 LEO是Log End Offset的縮寫,它表示了當(dāng)前日志文件中下一條待寫入消息的offset,如圖offset為9的位置即為當(dāng)前日志文件LEO,LEO的大小相當(dāng)于當(dāng)前日志分區(qū)中最后一條消息的offset值加1。 分區(qū)ISR集合中的每個副本都會維護(hù)自身的LEO,而ISR集合中最小的LEO即為分區(qū)的HW,對消費(fèi)這而言只能消費(fèi)HW之前的消息。 LSO特指LastStableOffset。它具體與kafka的事物有關(guān)。
四 、Data Replication何時Commit?
參考:
https://blog.csdn.net/qq_37502106/article/details/80271800
https://blog.csdn.net/lukabruce/article/details/101012815
總結(jié)
以上是生活随笔為你收集整理的关于kafka中ISR、AR、HW、LEO、LSO、LW的含义详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据类型规则的放宽
- 下一篇: Scala比较器:Ordered与Ord