Kafka以Topic爲期間單位組織消息。各個Topic之間相互獨立,互不影響。日誌
每一個Topic是由一個或多個分區組成,分區數能夠在建立Topic時指定,或者在Topic建立以後修改。對象
能夠用bin/kafka-topics.sh來修改某個Topic的分區數,但只能增長分區數,不能減小分區數。索引
每一個分區有一個或多個replica。中文名稱爲「副本」。副本是對數據冗餘的一種操做,減小數據loss的風險。kafka
若是有多個副本,會從中選舉一個做爲leader副本,其他的做爲follower副本。同步
只有leader副本用做與客戶端的讀寫操做。follower副本只負責從leader副本同步數據。im
每一個Replica在邏輯上對應一個Log對象,每一個Log對象又劃分爲多個LogSegment對象。每一個LogSegment包括一個日誌文件和一個offset索引文件,一個time索引文件。數據