Kafka
中的ISR
、AR
表明什麼?ISR
:與leader
保持同步的follower
集合ide
AR
:分區的全部副本性能
Kafka
中的HW
、LEO
分別表明什麼?LEO
:每一個副本的最後條消息的offset
線程
HW
:一個分區中全部副本最小的offset
設計
offset
中是怎麼體現消息順序性的?每一個分區內,每條消息都有一個offset
,故只能保證分區內有序3d
offset
中的分區器、序列化器、攔截器是否瞭解?它們之間的處理順序是什麼?攔截器 -> 序列化器 -> 分區器日誌
Kafka
生產者客戶端的總體結構是什麼樣子的?使用了幾個線程來處理?分別是什麼?Topic
的分區,那麼就會有消費者消費不到數據這句話是否正確?正確code
offset
仍是offset+1
?offset+1
blog
先提交offset
,後消費,有可能形成數據的重複kafka
kafka-topics.sh
建立了一個Topic
以後,Kafka背後會執行什麼邏輯?會在ZK
中的/brokers/topics
節點下建立一個新的Topic
節點同步
觸發Controller
的監聽程序
Kafka Controller
負責Topic
的建立工做,並更新metadata cache
Topic
的分區數可不能夠增長?若是能夠怎麼增長?若是不能夠,那又是爲何?能夠增長
bin/kafka-topics.sh --zookeeper localhost:2181/kafka --alter --topic topic-config --partitions 3
Topic
的分區數可不能夠減小?若是能夠怎麼減小?若是不能夠,那又是爲何?不能夠減小,被刪除的分區數據難以處理
Kafka
有內部的Topic
嗎?若是有是什麼?有什麼所用?__consumer_offsets
,保存消費者offset
Kafka
分區分配的概念?一個Topic
多個分區,一個消費者組多個消費者,故須要將分區分配個消費者(roundrobin
、range
)
Kafka
的日誌目錄結構?每一個分區對應一個文件夾,文件夾的命名爲topic-0
,topic-1
,內部爲.log
和.index
文件
offset
,Kafka Controller
怎麼查找到對應的消息?Kafka Controller
的做用?負責管理集羣Broker
的上下線,全部Topic
的分區副本分配和leader
選舉等工做
Kafka
中有那些地方須要選舉?這些地方的選舉策略又有哪些?partition leader(ISR)
`controller
(先到先得)
不能及時與leader
同步,暫時踢出ISR
,等其追上leader
以後再從新加入
Kafka
的那些設計讓它有如此高的性能?分區
順序寫磁盤
零拷貝