Kafka基本概念

懵逼猴發表於2020-12-13

Producer

生產者,傳送訊息的一方。生產者負責生產訊息,然後投遞到Kafka中

Consumer

消費者:接受訊息的一方,消費者連線到Kafka中並接受訊息

Broker

服務代理節點,可以簡單的看作一個獨立的Kafka服務節點,producer將訊息發完broker,consumer從broker中拉訊息

Topic

主題是一個邏輯上的概念,Kafka中的訊息以Topic為單位進行歸類,生產者將訊息傳送到特定的主題,消費者負責訂閱訊息並進行消費。
####Partition
一個主題可以細分為多個分割槽,一個分割槽屬於單個主題。同一主題的不同分割槽包含的訊息是不同的,訊息被追加到分割槽日誌檔案的時候都有分配一個特定的偏移量(offest), offest是訊息在分割槽中的唯一標識。如果一個主題只有一個檔案,那麼IO將會成為這個主題的瓶頸,每一個分割槽對應一個檔案,從而解決了這個問題
####Partition Replication
每一個分割槽有多個副本,同一分割槽的不同副本儲存的相同的訊息,一本不同的副本在不同的broker中,這種機制提升了容災能力。副本之間是一主多從的關係,其中leader副本負責處理讀寫請求,follower副本只負責與leader進行訊息的同步。分割槽中的所有副本成為AR(Assigned Replicas), 與leader副本保持一定程度同步的(包括leader)組成ISR(In-Sync Replica),與leader副本滯後過多的副本組成OSR(Out-Sync Replica)。預設當leader副本發生故障只有在ISR中副本才能夠被選為leader。
###High Watermark
俗稱高水位,他標識了一個特定的訊息偏移量,消費者只能拉取到offset之前的訊息

Log End Offest

他標識當前日誌檔案中下一條待寫入的訊息