日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Kafka:介紹和內部工作原理

來源: 責編: 時間:2023-09-28 10:07:38 312觀看
導讀展示Kafka工作方式的簡單架構。什么是Kafka?為什么我們要使用它?它是消息隊列嗎?它是一個 分布式流處理平臺或分布式 提交日志。Kafka通常用于實時流數據管道,即在系統之間傳輸數據,構建不斷流動的數據轉換系統和構建事件

5wR28資訊網——每日最新資訊28at.com

展示Kafka工作方式的簡單架構。5wR28資訊網——每日最新資訊28at.com

什么是Kafka?為什么我們要使用它?它是消息隊列嗎?

它是一個 分布式流處理平臺或分布式 提交日志。5wR28資訊網——每日最新資訊28at.com

Kafka通常用于實時流數據管道,即在系統之間傳輸數據,構建不斷流動的數據轉換系統和構建事件驅動的系統。5wR28資訊網——每日最新資訊28at.com

它確實可以充當消息隊列,但不僅限于此。它可以充當FIFO隊列、發布/訂閱消息系統、實時流處理平臺。由于Kafka的持久性存儲能力,甚至可以用作數據庫。5wR28資訊網——每日最新資訊28at.com

那么從上面的定義中,什么是分布式流處理和提交日志?

Kafka作為一個由一個或多個節點組成的集群工作,這些節點可以位于不同的數據中心,我們可以將數據/負載分布到Kafka集群中的不同節點,它具有固有的可擴展性、可用性和容錯性。5wR28資訊網——每日最新資訊28at.com

Kafka將數據存儲為一系列連續的記錄,可以以不同的方法進行處理。5wR28資訊網——每日最新資訊28at.com

當您將數據推送到Kafka時,它會將它們附加到記錄流中,就像將日志附加到日志文件中一樣。5wR28資訊網——每日最新資訊28at.com

讓我們開始...

為了理解這一點,讓我們深入研究關鍵主題:5wR28資訊網——每日最新資訊28at.com

1.消息

  • 消息是Kafka的原子數據單位。
  • 您可以推送字符串、整數、不同架構的JSON以及其他任何內容,但通常將不同類型的消息推送到不同的主題中。
  • 可以使用一個鍵(Key),它只是一些元數據,用于確定目標分區。

2.主題

我們可以將主題視為Kafka中的消息的邏輯類別,它們是相同類型數據的流。5wR28資訊網——每日最新資訊28at.com

3.分區

5wR28資訊網——每日最新資訊28at.com

Image.jpeg5wR28資訊網——每日最新資訊28at.com

  • 這基本上是分片技術,是Kafka的擴展能力背后的概念。
  • 分區是使消息能夠并行分布在集群中的多個代理上的機制。使用這種并行性方法,Kafka可以同時支持多個消費者和生產者的線性擴展。這種分區方法允許消費者和生產者的線性擴展。
  • 當我們將主題的數據拆分為多個流時,我們稱所有這些較小的流為該主題的“分區”。
  • 系統的性能還取決于設置分區的方式。
  • 消息的偏移量是該消息的數組索引。圖中塊上的數字表示偏移量,第一個塊位于第0個偏移量處,最后一個塊位于(n-1)個偏移量處。

4.生產者

(1) 將消息發布到Kafka主題的Kafka客戶端。5wR28資訊網——每日最新資訊28at.com

生產者用于決定將消息發送到哪個分區。根據不同的配置和參數,生產者決定目標分區。5wR28資訊網——每日最新資訊28at.com

讓我們檢查不同的情況:5wR28資訊網——每日最新資訊28at.com

  • 未指定鍵:生產者將隨機決定分區,并嘗試平衡所有分區上的消息總數。
  • 指定鍵:生產者使用一致性哈希[1]將鍵映射到分區。一致性哈希是一種哈希機制,在相同的鍵上始終生成相同的哈希值,它最小化了重新哈希情況下鍵的重新分布。
  • 指定分區:您也可以硬編碼目標分區。
  • 自定義分區邏輯:我們可以根據分區可以決定的一些規則編寫規則。

(2) 您可以以3種方式將消息發送到Kafka。5wR28資訊網——每日最新資訊28at.com

  • 發送并忘記 — 我們發送消息到Kafka代理并忘記它。由于Kafka是高可用的,成功的機會很大。
  • 同步發送 — 您希望等待所有感興趣的消費者完成您希望它們完成的任何操作
  • 異步發送 — 您不希望等待所有感興趣的消費者完成您希望它們完成的任何操作

我們還可以在將消息發送到代理之前在生產者上配置特性。5wR28資訊網——每日最新資訊28at.com

為了獲得更好的性能,我們可以使用Avro序列化/反序列化器。5wR28資訊網——每日最新資訊28at.com

5.消費者

消費者以有序的方式從分區中讀取消息。5wR28資訊網——每日最新資訊28at.com

每次消費者讀取一條消息時,它都會將偏移值存儲到Kafka或Zookeeper上,表示它是消費者讀取的最后一條消息。5wR28資訊網——每日最新資訊28at.com

因此,如果消費者節點崩潰,它可以恢復到上次讀取的位置。此外,如果在任何時候消費者需要回到過去并讀取舊消息,它只需重置偏移位置即可。5wR28資訊網——每日最新資訊28at.com

(1) 輪詢循環:5wR28資訊網——每日最新資訊28at.com

您可以配置分區分配策略。5wR28資訊網——每日最新資訊28at.com

  • 范圍:消費者獲取連續的分區
  • 輪詢:輪詢分配器列出了所有可用的分區和所有可用的

嘗試在重新平衡時最小化影響,保持大部分分配不變,但允許協作重新平衡批處理大小。我們可以配置每次輪詢調用返回多少條記錄和多少數據。5wR28資訊網——每日最新資訊28at.com

(2) 提交偏移量:5wR28資訊網——每日最新資訊28at.com

在讀取消息時,我們可以更新消費者的偏移位置,這稱為提交偏移量。可以啟用自動提交,或者應用程序可以顯式地提交偏移量。這可以同步和異步兩種方式完成。5wR28資訊網——每日最新資訊28at.com

6.消費者組

一組消費者一起工作,從一個主題中讀取消息。5wR28資訊網——每日最新資訊28at.com

1扇出交換: 可以由多個消費者組訂閱單個主題。5wR28資訊網——每日最新資訊28at.com

一個實時示例是OTP發送服務,可以在號碼上發送OTP,也可以發送到電子郵件。5wR28資訊網——每日最新資訊28at.com

5wR28資訊網——每日最新資訊28at.com

Otp示例5wR28資訊網——每日最新資訊28at.com

1.訂單保證: 一個分區不能由同一個消費者組中的多個消費者讀取。這由消費者組啟用,只有消費者組中的一個消費者可以從單個分區讀取。5wR28資訊網——每日最新資訊28at.com

5wR28資訊網——每日最新資訊28at.com

在這里,生產者生成6條消息。每條消息都是鍵值對,假設鍵“A”的值為“1”,“C”的值為“1”,“B”的值為“1”,“C”的值為“2”……“B”的值為“2”。5wR28資訊網——每日最新資訊28at.com

我們的主題有3個分區,由于一致性哈希,具有相同鍵的消息始終進入同一分區,因此所有鍵為“A”的消息都會在一起分組,鍵為B和C的消息也是如此。5wR28資訊網——每日最新資訊28at.com

現在,由于每個分區只有一個消費者,它們只按順序接收消息。因此,消費者將在A2之前接收A1,在B2之前接收B1,因此保持了順序。5wR28資訊網——每日最新資訊28at.com

因此,對于3個分區,您可以最多擁有3個消費者,如果有4個消費者,一個消費者將處于空閑狀態。但對于3個分區,您可以有2個消費者,然后一個消費者將從一個分區讀取,另一個消費者將從兩個分區讀取。5wR28資訊網——每日最新資訊28at.com

7.代理

單個Kafka服務器。5wR28資訊網——每日最新資訊28at.com

代理接收來自生產者的消息,為它們分配偏移量,然后將它們提交到分區日志,基本上是將數據寫入磁盤,這賦予了Kafka其持久性特性。5wR28資訊網——每日最新資訊28at.com

8.集群

由多個代理節點協同工作以提供可擴展性、可用性和容錯性的集群。集群中的一個代理充當控制器,負責將分區分配給代理。5wR28資訊網——每日最新資訊28at.com

當一個分區被復制到3個代理時,其中一個代理將充當該分區的領導者,其余兩個將成為追隨者。5wR28資訊網——每日最新資訊28at.com

數據始終寫入領導者代理,然后復制到追隨者。通過這種方式,我們既不會丟失數據,也不會丟失集群的可用性,如果領導者崩潰,將選舉出另一個領導者。5wR28資訊網——每日最新資訊28at.com

讓我們深入一些編程內容:

  • 創建一個主題,創建該主題的5個分區,并將所有5個主題的數據復制到總共3個節點。
  • kafka-topics — create — zookeeper zookeeper:2181 — topic applog — partitions 5 — replication-factor 3

Zookeeper

在集群中多次聽到這個術語,讓我們看看它是什么?5wR28資訊網——每日最新資訊28at.com

Zookeeper作為Kafka的中央配置和共識管理系統。它跟蹤代理、主題和分區分配、領導者選舉,基本上是有關集群的所有元數據。5wR28資訊網——每日最新資訊28at.com

結束語

Kafka是一款出色的軟件,具有豐富的功能,可以在各種用例中使用。Kafka非常適合現代分布式系統,因為它是通過設計分布式的。它最初由LinkedIn創建,目前由Confluent維護。像Uber、Netflix、Activision、Spotify、Slack、Pinterest、Coursera等頂級科技公司都在使用它。我們了解了Kafka的核心概念,以幫助您入門。還有很多其他東西,比如Kafka Stream API或kSql,由于時間有限,我們沒有討論。5wR28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-11837-0.htmlKafka:介紹和內部工作原理

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 如何使用Hadoop和MapReduce進行數據處理?

下一篇: 水印藝術創造:逐步學習Python中的添加水印精華

標簽:
  • 熱門焦點
  • 容量越大越不壞?24萬塊硬盤故障率報告公布 這些產品零故障

    8月5日消息,云存儲服務商Backblaze發布了最新的硬盤故障率報告,年故障率有所上升。Backblaze發布的硬盤季度統計數據,其中包括故障率等重要方面。這些結
  • 跑分安卓第一!Redmi K60至尊版8月發布!盧偉冰:目標年度性能之王

    8月5日消息,Redmi K60至尊版將于8月發布,在此前舉行的戰略發布會上,官方該機將搭載搭載天璣9200+處理器,安兔兔V10跑分超177萬分,是目前安卓陣營最高的分數
  • Rust中的高吞吐量流處理

    作者 | Noz編譯 | 王瑞平本篇文章主要介紹了Rust中流處理的概念、方法和優化。作者不僅介紹了流處理的基本概念以及Rust中常用的流處理庫,還使用這些庫實現了一個流處理程序
  • CSS單標簽實現轉轉logo

    轉轉品牌升級后更新了全新的Logo,今天我們用純CSS來實現轉轉的新Logo,為了有一定的挑戰性,這里我們只使用一個標簽實現,將最大化的使用CSS能力完成Logo的繪制與動畫效果。新logo
  • 虛擬鍵盤 API 的妙用

    你是否在遇到過這樣的問題:移動設備上有一個固定元素,當激活虛擬鍵盤時,該元素被隱藏在了鍵盤下方?多年來,這一直是 Web 上的默認行為,在本文中,我們將探討這個問題、為什么會發生
  • 每天一道面試題-CPU偽共享

    前言:了不起:又到了每天一到面試題的時候了!學弟,最近學習的怎么樣啊 了不起學弟:最近學習的還不錯,每天都在學習,每天都在進步! 了不起:那你最近學習的什么呢? 了不起學弟:最近在學習C
  • 疑似小米14外觀設計圖曝光:后置相機模組變化不大

    下半年的大幕已經開啟,而誰將成為下半年手機圈的主角就成為了大家關注的焦點,其中被傳有望拿下新一代驍龍8 Gen3旗艦芯片的小米14系列更是備受大家矚
  • 機構稱Q2國內智能手機銷量同比下滑4% vivo份額重回第1

    7月29日消息,根據市場調查機構Counterpoint Research公布的最新報告,2023年第2季度中國智能手機銷量同比下降4%,創新自2014年以來第2季度銷量新低。報
  • 利用職權私自解除被封帳號 Meta開除20多名員工

    11月18日消息,據外媒援引知情人士表示,過去一年時間內,Facebook母公司Meta解雇或處罰了20多名員工以及合同工,指控這些人通過內部系統以不當方式重置用戶帳號,其
Top 主站蜘蛛池模板: 安阳县| 大英县| 吉首市| 阳信县| 博白县| 赫章县| 明水县| 磐安县| 张北县| 二连浩特市| 改则县| 通榆县| 文安县| 青铜峡市| 蒲江县| 化州市| 平远县| 芦山县| 新余市| 渭南市| 布尔津县| 尼玛县| 佛学| 亳州市| 宽城| 湘乡市| 巢湖市| 冀州市| 垣曲县| 阳谷县| 太保市| 曲周县| 茂名市| 晋江市| 宾阳县| 陆良县| 鹤峰县| 芦山县| 望都县| 安西县| 陆川县|