卡夫卡

Kafka -工作流程

Kafka -工作流程

Kafka在發布-訂閱和基於隊列的消息傳遞係統中提供了快速和持久的工作流。簡單地說,Kafka對應於一個主題集合,它的分區由有序的消息組成,每個消息都有索引。生產者根據特定的主題將消息發送給消費者,消費者可以根據自己的喜好和需求自由選擇消息傳遞係統的類型。

發布-訂閱類型的消息傳遞係統的工作流程如下

  • 第一步始於生產者發送屬於主題的消息。
  • 消息存儲在屬於特定主題的分區中,消息在這些分區之間平等地共享。
  • 對於兩條消息,有兩個對應的分區。Kafka會簡單地將第一條和第二條消息分配到各自的分區中。
  • 當消費者訂閱一個主題時,該主題的最新偏移量將提供給消費者。偏移量也會保存在Kafka的Zookeeper集合中。
  • 當Kafka定期從生產者接收消息時,這些消息會被廣播給請求它們的消費者。
  • 在收到消息後,消費者將與Kafka代理共享確認。
  • 一旦Kafka代理收到確認,他們就會改變和更新Zookeeper中的偏移值,以便消費者可以在任何他們想要的時候讀取消息,即使是在服務器停機的情況下。
  • 整個工作流將循環重複,直到消息請求被使用者停止。
  • 使用者可以選擇跳過所需的主題,並根據需要閱讀關於另一個主題的下一條消息。

消費者群組或隊列消息傳遞係統的工作流程可解釋在以下步驟-

  • 生產者就一個或多個主題發送消息。
  • 所有的消息都存儲在Kafka分配的特定主題對應的分區中。
  • 假設有一個消費者訂閱了名為“topic a”的主題,其組id為“group -1”。
  • 在隻有一個消費者訂閱之前,Kafka將遵循發布-訂閱消息係統的工作流程與消費者進行交互,直到更多的消費者加入。
  • Kafka將其操作模式切換為共享模式,以便與多個消費者交互。所有訂閱同一主題且具有相同組id的消費者將被視為單個組。這個過程將繼續進行,直到消費者的數量等於為特定主題分配的分區的數量。
  • 如果消費者的數量超過分區的數量,在現有消費者取消訂閱之前,不會有新的消費者收到消息。新的消費者將不得不等待。
  • 卡夫卡的特征也被稱為“消費群體”。
Baidu
map