Apache Kafka工做流程| Kafka Pub-Sub Messaging

1.目標

在咱們上一篇Kafka教程中,咱們討論了Kafka Docker今天,咱們將討論Kafka Workflow。此外,咱們將詳細介紹Pub-Sub Messaging的工做流程以及Queue Messaging / Consumer Group的工做流程。此外,咱們將看到ZooKeeper在Apache Kafka中的做用。
那麼,讓咱們從Kafka Workflow開始吧。docker

Apache Kafka工做流程

Apache Kafka工做流程| Kafka Pub-Sub Messagingapache

2.什麼是Kafka Workflow?

在Kafka Workflow中,Kafka是主題的集合,它們被分紅一個或多個分區,而分區是一系列消息,其中index標識每條消息(咱們也稱爲偏移量)。可是,在Kafka集羣中全部數據都是分區的不相交聯合。傳入消息出如今分區的末尾,所以消費者能夠讀取它們。此外,經過將消息複製到不一樣的代理,它能夠保持持久性。
讓咱們修改Apache Kafka架構Kafka
以很是快速,可靠,持久,容錯和零停機的方式提供基於Pub-sub和隊列的消息傳遞系統。此外,生產者將消息發送到主題,而且消費者能夠根據他們的願望選擇任何一個消息系統。服務器

3. Pub-Sub Messaging的工做流程

在Apache Kafka中,Pub-Sub Messaging的逐步工做流程是:架構

  • Kafka Producers按期將消息發送給主題。
  • Kafka Brokers將全部消息存儲在爲該特定主題配置的分區中,從而確保在分區之間平均分配消息。例如,若是生產者發送兩條消息而且有兩個分區,則Kafka將在第一個分區中存儲一條消息而在第二個分區中存儲第二條消息。
  • 此外,Kafka Consumer訂閱了一個特定主題。
  • 消費者訂閱主題後,Kafka會向消費者提供主題的當前偏移量,並將偏移量保存在Zookeeper集合中。
  • 此外,消費者將按期請求Kafka,以獲取新消息(如100 Ms)。
  • Kafka將在收到生產者後當即將消息轉發給消費者。
  • 消費者將收到消息並進行處理。
  • 而後Kafka經紀人收到已處理郵件的確認。
  • 此外,一旦Kafka收到確認,就會更改偏移並將其更新爲新值。即便在服務器暴動期間,消費者也能夠正確讀取下一條消息,由於ZooKeeper會維護偏移量。
  • 可是,在消費者中止請求以前,流程會重複。
  • 做爲一種好處,消費者能夠隨時回放/跳過主題的任何偏移,而且還能夠閱讀全部後續消息,做爲一個標準的願望。

閱讀Kafka Performance Tuning分佈式

4. Kafka Queue消息/消費者組的工做流程

具備相同組ID的一組Kafka消費者能夠在隊列消息傳遞系統中訂閱主題而不是單個消費者。可是,對於全部使用者具備相同的組ID,訂閱主題的用戶被視爲單個組並共享消息。該系統的工做流程是:學習

  • Kafka Producers按期發送消息給Kafka主題。
  • 與前面的場景相似,此處Kafka還會在爲該特定主題配置的分區中存儲全部消息。
  • 此外,Kafka中的單個消費者訂閱了特定主題。
  • 與Pub-Sub Messaging相同,Kafka與消費者交互,直到新消費者訂閱同一主題。
  • 隨着新客戶的到來,共享模式從操做開始,並在兩個Kafka消費者之間共享數據。此外,在Kafka使用者的數量等於爲該特定主題配置的分區數量以前,共享重複。
  • 雖然,一旦Kafka消費者的數量超過度區數量,Kafka的新消費者將不會收到任何進一步的消息。它發生在任何一個現有的消費者取消訂閱以前。出現這種狀況是由於在Kafka中存在一個條件,即每一個Kafka消費者將至少有一個分區,若是沒有分區保持空白,那麼新消費者將不得不等待。
  • 此外,咱們還稱其爲Kafka Consumer Group。所以,Apache Kafka將以很是簡單和有效的方式提供兩種系統中的最佳系統。

學習Apache Kafka Streams | 流處理拓撲ui

5. ZooKeeper在Apache Kafka中的做用

Apache Zookeeper充當Kafka代理和消費者之間的協調接口。此外,咱們能夠說它是一個分佈式配置和同步服務。基本上,ZooKeeper集羣與Kafka服務器共享信息。此外,Kafka在ZooKeeper Kafka中存儲基本元數據信息,例如主題,代理,消費者偏移(隊列讀取器)等。
點擊連接,瞭解有關Zookeeper在Kafka中的角色的更多信息
此外,Kafka Zookeeper / broker的故障不會影響Kafka集羣。這是由於存儲在ZooKeeper中的關鍵信息會在其集合中複製。而後Kafka在ZooKeeper從新啓動時恢復狀態,致使Kafka零停機。然而,在領導失敗的狀況下,Zookeeper還在Kafka經紀人之間進行領導選舉。
所以,這徹底是關於Apache Kafka Workflow。但願你喜歡咱們的解釋。spa

六,結論

所以,咱們已經看到了Apache Kafka Workflow的概念。此外,在這個Kafka Workflow教程中,咱們討論了Pub-Sub Messaging系統的Workflow,以及Kafka Queue Messaging系統的工做流程最後,咱們看到了Zookeeper在Apache Kafka中的做用。不過,若是對Kafka Workflow有任何疑問,請隨時在評論部分詢問。
另請參閱 -  
具備薪資趨勢的Apache Kafka職業範圍
供參考.net

相關文章
相關標籤/搜索