展示Kafka工作方式的簡單架構。
它是一個 分布式流處理平臺或分布式 提交日志。
Kafka通常用于實時流數據管道,即在系統之間傳輸數據,構建不斷流動的數據轉換系統和構建事件驅動的系統。
它確實可以充當消息隊列,但不僅限于此。它可以充當FIFO隊列、發布/訂閱消息系統、實時流處理平臺。由于Kafka的持久性存儲能力,甚至可以用作數據庫。
Kafka作為一個由一個或多個節點組成的集群工作,這些節點可以位于不同的數據中心,我們可以將數據/負載分布到Kafka集群中的不同節點,它具有固有的可擴展性、可用性和容錯性。
Kafka將數據存儲為一系列連續的記錄,可以以不同的方法進行處理。
當您將數據推送到Kafka時,它會將它們附加到記錄流中,就像將日志附加到日志文件中一樣。
為了理解這一點,讓我們深入研究關鍵主題:
我們可以將主題視為Kafka中的消息的邏輯類別,它們是相同類型數據的流。
Image.jpeg
(1) 將消息發布到Kafka主題的Kafka客戶端。
生產者用于決定將消息發送到哪個分區。根據不同的配置和參數,生產者決定目標分區。
讓我們檢查不同的情況:
(2) 您可以以3種方式將消息發送到Kafka。
我們還可以在將消息發送到代理之前在生產者上配置特性。
為了獲得更好的性能,我們可以使用Avro序列化/反序列化器。
消費者以有序的方式從分區中讀取消息。
每次消費者讀取一條消息時,它都會將偏移值存儲到Kafka或Zookeeper上,表示它是消費者讀取的最后一條消息。
因此,如果消費者節點崩潰,它可以恢復到上次讀取的位置。此外,如果在任何時候消費者需要回到過去并讀取舊消息,它只需重置偏移位置即可。
(1) 輪詢循環:
您可以配置分區分配策略。
嘗試在重新平衡時最小化影響,保持大部分分配不變,但允許協作重新平衡批處理大小。我們可以配置每次輪詢調用返回多少條記錄和多少數據。
(2) 提交偏移量:
在讀取消息時,我們可以更新消費者的偏移位置,這稱為提交偏移量。可以啟用自動提交,或者應用程序可以顯式地提交偏移量。這可以同步和異步兩種方式完成。
一組消費者一起工作,從一個主題中讀取消息。
1扇出交換: 可以由多個消費者組訂閱單個主題。
一個實時示例是OTP發送服務,可以在號碼上發送OTP,也可以發送到電子郵件。
Otp示例
1.訂單保證: 一個分區不能由同一個消費者組中的多個消費者讀取。這由消費者組啟用,只有消費者組中的一個消費者可以從單個分區讀取。
在這里,生產者生成6條消息。每條消息都是鍵值對,假設鍵“A”的值為“1”,“C”的值為“1”,“B”的值為“1”,“C”的值為“2”……“B”的值為“2”。
我們的主題有3個分區,由于一致性哈希,具有相同鍵的消息始終進入同一分區,因此所有鍵為“A”的消息都會在一起分組,鍵為B和C的消息也是如此。
現在,由于每個分區只有一個消費者,它們只按順序接收消息。因此,消費者將在A2之前接收A1,在B2之前接收B1,因此保持了順序。
因此,對于3個分區,您可以最多擁有3個消費者,如果有4個消費者,一個消費者將處于空閑狀態。但對于3個分區,您可以有2個消費者,然后一個消費者將從一個分區讀取,另一個消費者將從兩個分區讀取。
單個Kafka服務器。
代理接收來自生產者的消息,為它們分配偏移量,然后將它們提交到分區日志,基本上是將數據寫入磁盤,這賦予了Kafka其持久性特性。
由多個代理節點協同工作以提供可擴展性、可用性和容錯性的集群。集群中的一個代理充當控制器,負責將分區分配給代理。
當一個分區被復制到3個代理時,其中一個代理將充當該分區的領導者,其余兩個將成為追隨者。
數據始終寫入領導者代理,然后復制到追隨者。通過這種方式,我們既不會丟失數據,也不會丟失集群的可用性,如果領導者崩潰,將選舉出另一個領導者。
在集群中多次聽到這個術語,讓我們看看它是什么?
Zookeeper作為Kafka的中央配置和共識管理系統。它跟蹤代理、主題和分區分配、領導者選舉,基本上是有關集群的所有元數據。
Kafka是一款出色的軟件,具有豐富的功能,可以在各種用例中使用。Kafka非常適合現代分布式系統,因為它是通過設計分布式的。它最初由LinkedIn創建,目前由Confluent維護。像Uber、Netflix、Activision、Spotify、Slack、Pinterest、Coursera等頂級科技公司都在使用它。我們了解了Kafka的核心概念,以幫助您入門。還有很多其他東西,比如Kafka Stream API或kSql,由于時間有限,我們沒有討論。
本文鏈接:http://www.www897cc.com/showinfo-26-11837-0.htmlKafka:介紹和內部工作原理
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com