Kafka實戰(六) - 核心API及適用場景全面解析

      網友投稿 679 2025-03-31

      1 核心API

      ● Producer API

      允許一個應用程序發布一串流式數據到一或多個Kafka topic。

      ● Consumer API

      允許一個應用程序訂閱一個或多個topic ,并且對發布給他們的流式數據進行處理。

      ● Streams API

      允許一個應用程序作為一個流處理器,消費一個或者多個topic產生的輸入流,然后生產一個輸出流到一個或多個topic中去,在輸入輸出流中進行有效的轉換。

      ● Connector API

      允許構建并運行可重用的生產者或者消費者,將Kafka topics連接到已存在的應用程序或者數據系統。比如,連接到一個關系型數據庫,捕捉表(table) 的所有變更內容。

      在Kafka中,客戶端和服務器之間的通信是通過簡單,高性能,語言無關的TCP協議完成的。

      此協議已版本化并保持與舊版本的向后兼容性。Kafka提供多種語言客戶端。

      2 Kafka API - producer

      Producer會為每個partition維護一個緩沖,用來記錄還沒有發送的數據,每個緩沖區大小用batch.size指定,默認值為16k.

      linger.ms為,buffer中的數據在達到batch.size前,需要等待的時間

      acks用來配置請求成功的標準

      send異步方法

      3 Kafka API - Consumer

      3.1 Simple Cnsumer

      位于kafka.javaapi.consumer包中,不提供負載均衡、容錯的特性每次獲取數據都要指定topic、partition、offset、 fetchSize

      3.2 High-level Consumer

      該客戶端透明地處理kafka broker異常,透明地切換consumer的partition, 通過和broker交互來實現consumer group級別的負載均衡。

      Group

      4 整體架構

      5 使用場景

      5.1 消息系統

      消息系統被用于各種場景,如解耦數據生產者,緩存未處理的消息。Kafka 可作為傳統的消息系統的替代者,與傳統消息系統相比,kafka有更好的吞吐量、更好的可用性,這有利于處理大規模的消息。

      根據經驗,通常消息傳遞對吞吐量要求較低,但可能要求較低的端到端延遲,并經常依賴kafka可靠的durable機制。

      在這方面,Kafka可以與傳統的消息傳遞系統(ActiveMQ 和RabbitMQ)相媲美。

      5.2 存儲系統

      寫入到kafka中的數據是落地到了磁盤上,并且有冗余備份,kafka允許producer等待確認,通過配置,可實現直到所有的replication完成復制才算寫入成功,這樣可保證數據的可用性。

      Kafka認真對待存儲,并允許client自行控制讀取位置,你可以認為kafka是-種特殊的文件系統,它能夠提供高性能、低延遲、高可用的日志提交存儲。

      5.3 日志聚合

      Kafka實戰(六) - 核心API及適用場景全面解析

      日志系統一般需要如下功能:日志的收集、清洗、聚合、存儲、展示。

      Kafka常用來替代其他日志聚合解決方案。(官方說法,略有夸大嫌疑)

      和Scribe、Flume相 比,Kafka提供同樣好的性能、更健壯的堆積保障、更低的端到端延遲。

      日志會落地,導致kafka做 日志聚合更昂貴

      kafka可實現日志的清洗(需要編碼)、聚合(可靠但昂貴,因為需要落地磁盤)、存儲。

      ELK是現在比較流行的日志系統。在kafka的配合 下才是更成熟的方案,kafka在ELK技術棧中,主要起到buffer的作用,必要時可進行日志的匯流。.

      5.4 跟蹤網站活動

      kafka的最初始作用就是,將用戶行為跟蹤管道重構為一組實時發布-訂閱源。

      把網站活動(瀏覽網頁、搜索或其他的用戶操作)發布到中心topics中,每種活動類型對應一個topic。基于這些訂閱源,能夠實現一系列用例,如實時處理、實時監視、批量地將Kafka的數據加載到Hadoop或離線數據倉庫系統,進行離線數據處理并生成報告。

      每個用戶瀏覽網頁時都生成了許多活動信息,因此活動跟蹤的數據量通常非常大。(Kafka實際應用)

      5.5 流處理 - kafka stream API

      Kafka社區認為僅僅提供數據生產、消費機制是不夠的,他們還要提供流數據實時處理機制

      從0.10.0.0開始, Kafka通過提供Strearms API來提供輕量,但功能強大的流處理。實際上就是Streams API幫助解決流引用中一些棘手的問題,比如:

      處理無序的數據

      代碼變化后再次處理數據

      進行有狀態的流式計算

      Streams API的流處理包含多個階段,從input topics消費數據,做各種處理,將結果寫入到目標topic, Streans API基于kafka提供的核心原語構建,它使用kafka consumer、 producer來輸入、輸出,用Kfka來做狀態存儲。

      流處理框架: flink spark streamingJ Stortm、 Samza 本是正統的流處理框架,Kafka在流處理中更多的是扮演流存儲的角色。

      API Kafka

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:環保項目計劃書模板(環保公司計劃書)
      下一篇:車間每日生產統計報表(車間每日生產統計報表小幫手下載)
      相關文章
      亚洲av无码无线在线观看| 亚洲一区二区三区香蕉| 区久久AAA片69亚洲| 亚洲成a人片在线观看日本麻豆| 亚洲AV男人的天堂在线观看| 亚洲性69影院在线观看| 亚洲一区二区影院| 精品日韩亚洲AV无码一区二区三区| 亚洲av无码不卡一区二区三区| 亚洲精品国产成人片| 国产成人综合亚洲亚洲国产第一页| 国产精品亚洲精品日韩已方| 亚洲欧洲久久av| 亚洲国产天堂久久综合| 亚洲七七久久精品中文国产| 亚洲综合色在线观看亚洲| 亚洲精品尤物yw在线影院| 亚洲人成电影网站国产精品| 亚洲一区二区高清| 久久久久亚洲爆乳少妇无 | 亚洲福利中文字幕在线网址| 亚洲精品无码少妇30P| 亚洲av乱码中文一区二区三区| 色五月五月丁香亚洲综合网| 亚洲成A人片在线观看中文 | 国内成人精品亚洲日本语音| 亚洲成a人片在线观看老师| 亚洲综合最新无码专区| 亚洲中文字幕无码久久精品1| 亚洲综合AV在线在线播放| 亚洲情综合五月天| 亚洲AV日韩AV永久无码久久| 亚洲高清美女一区二区三区| 亚洲人成综合在线播放| 一区二区亚洲精品精华液| 精品国产日韩亚洲一区91| 久久激情亚洲精品无码?V | 亚洲一线产区二线产区区| 亚洲成a人无码亚洲成av无码| 国产亚洲福利精品一区二区| 国产成人99久久亚洲综合精品|