1. 程式人生 > 其它 >【訊息佇列面試】6-10:Rebalance機制、副本同步機制、架構設計、zk的作用、kafka的高效能

【訊息佇列面試】6-10:Rebalance機制、副本同步機制、架構設計、zk的作用、kafka的高效能

六、簡述kafka的Rebalance【偏向實戰,有難度】

1、背景

kafka日誌:在訊息量大、高併發時,經常會出現rebalance中

rebalance會影響kafka效能,會阻塞partition的讀寫操作

2、瞭解其機制,以避免rebalance的發生

3、Rebalance是什麼

coordinator:leader節點所在的broker,作為一個協調者,監控cg中消費者的存活,判斷consumer是否消費超時

七、kafka的副本同步機制

注意:LEO從哪落盤、HW從哪消費【更新】、最後已被消費、最先待消費、起始的offset

leader(處理讀寫請求)和多個follower(負責資料同步),主備模式

根據offset判斷消費到了哪裡

LEO:待寫入資料的index

HW:HW前(下面)的資料對消費者可見,能夠被消費者消費

第一條未提交的資料

最後一條已提交的資料

leader和follower都有HW,LEO會選擇ISR中最小的HW和自身LEO進行寫入,LEO落盤後,進行+1

當leader掛掉,變為follower後,follower的HW會覆蓋當前節點的HW,從而會導致資料的丟失

訊息丟失的解決,會在後面講述

八、簡述kafka的架構設計

zk管理叢集,儲存一些元資訊,作為znode中的一個節點

topic類似於queue,特點是可以分割槽

cg中不同的consumer消費同一topic的不同分割槽【cg是邏輯上的概念,實際上還是一個消費者】

如果指定同一消費者組的多個消費者同時消費某個分割槽,則多個消費者則會互斥,訊息不會被重複傳送

九、kafka中zk的作用(老版本)

1、後續zk的作用越來越小

2、哪些作用

無生產者資訊,broker、topic、partition

十、kafka中高效能的原因

指其讀寫很快

順序寫、零拷貝

1、順序寫

kafka是一個日誌系統,寫到檔案中

不是存入記憶體中,訊息堆積能力強

硬碟是用磁頭隨機讀寫,而kafka是通過順序寫的方式(HBASE)

2、零拷貝

直接從磁碟讀入網絡卡中

通過作業系統來實現

3、不依賴於java堆記憶體

使用作業系統的pageCache,進行讀寫

本文來自部落格園,作者:

哥們要飛,轉載請註明原文連結:https://www.cnblogs.com/liujinhui/p/15795542.html