Kafka術語解釋

前一篇文章介紹瞭如何使用kafka收發消息,但是對於kafka的核心概念並沒有詳細介紹,這裏將會對包括kafka基本架構以及消費者、生產者API涉及的術語進行說明。瞭解這些術語有助於更深入理解kafka。

  • broker
  • topic
  • stream
  • partition
  • offset
  • producer
  • consumer
  • consumer group

    要了解這些術語,我們先看下kafka整個消息處理過程:

    kafka消息處理過程

    消息由producer產生,消息按照topic歸類,併發送到broker中,broker中保存了一個或多個topic的消息,consumer通過訂閱一組topic的消息,通過持續的poll操作從broker獲取消息,並進行後續的消息處理。

  • broker
    一個kafka集羣包含一個或多個服務器,這些服務器稱爲broker,保存producer發送的消息

  • topic
    每條發送到broker的消息都有一個類別,這個類別稱爲topic

  • partition
    一個topic的消息實際上由多個隊列存儲的,一個隊列在kafka上稱爲一個分區

  • producer
    負責發送指定topic的消息到broker

  • consumer
    消息讀取客戶端,通過訂閱一組topic的消息從broker拉取消息

  • consumer group
    每隔consumer術語一個消費者組,具有相同的group.id的消費客戶端術語同一個消費者。通過設置一個消息消費者group.id是否相同可以分爲單播消費(集羣消費)或廣播消費

假如一個消費者組有兩個消費者,訂閱了一個具有4個分區的topic的消息,那麼這個消費者組的每一個消費者都會消費兩個分區的消息。

消費者組的成員是動態維護的,如果新增或者減少了消費者組中的消費者,那麼每隔消費者消費的分區的消息也會動態變化。比如原來一個消費者有兩個消費者,其中一個消費者因爲故障而不能繼續消費消息了,那麼剩下一個消費者將會消費全部4個分區的消息。

  • offset
    偏移量。kafka爲每條在分區的消息保存一個偏移量offset,這也是消費者在分區的位置。比如一個偏移量是5的消費者,表示已經消費了從0-4偏移量的消息,下一個要消費的消息的偏移量是5
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章