Kafka基礎學習筆記

基本概念

Kafka是一個分佈式、可分區、可複製的消息系統,Kafka系統設計的術語整理以下:
Topic: Kafka消息以Topic爲單位進行管理,Topic爲業務邏輯單元。
Producer: 消息發送者,是向Topic發生消息的程序主體。
Consumer: 消息消費者:是從Topic中獲取消息進行消費的主體。
Broker: Kafka以集羣方式運行,每一個服務進程叫Broker。
Partition: 每一個Topic中可包含一個或多個分區(Partition),每一個分區都有一系列有序的、不可變的消息隊列組成,Partition是確保消息有序消費的最小單元。
Consumer Group: 多個Consumer能夠組成一個Group,經過Group實現消費者的集羣和負責均衡;對於同一條消息,只會被Group中的一個Consumer消費。
Offset:每一個消息隊列有一個連續的序號叫Offset,做爲隊列中消息的標識分佈式

Kafka系統消息隊列數據生成和消費模型以下。spa

11.PNG

每一個Producer和Consumer分別表示一個線程。線程

  1. 一個或多個Producer可向一個Topic寫入數據
  2. 多Partition的Topic,Producer數據寫入到Partition
  3. 多個Consumer能夠消費同一個Topic(Partition),但一個Consumer不可消費多個Topic
  4. 多個Consumer能夠組成Consumer Group,以負載分擔形式消費數據

和通常的消息隊列組件不一樣,Kafka可在配置的時間段內,保留消息隊列中的全部消息,無論消息是否已經被消費。好比配置的消息保留時間爲24小時,則在24小時內,消息能夠被重複消費。因爲這個特性,Consumer在每消費一條消息時,須要記錄當前消息的Offset並持久化,以便在Consumer重啓後,知道從什麼地方開始消費。固然Consumer啓動後,能夠從頭、從任意位置、從最新消息等任意方式開始消費消息。設計

未完待續...blog

相關文章
相關標籤/搜索