首頁 常見問題 Kafka的特點有哪些

Kafka的特點有哪些

Jun 29, 2020 am 11:40 AM
kafka

Kafka的特點有:1、同時為發布和訂閱提供高吞吐量;2、可進行持久化操作,將訊息持久化到磁碟,因此可用於批量消費;3、分散式系統,易於向外擴展;4、支援online和offline的場景。

Kafka的特點有哪些

Kafka的特色及使用情境

Kafka是分散式發布-訂閱訊息系統。它最初由LinkedIn公司開發,之後成為Apache專案的一部分。 Kafka是一個分散式的,可分割的,冗餘備份的持久性的日誌服務。

它主要用於處理活躍的串流資料。在大數據系統中,常常會碰到一個問題,整個大數據由各個子系統組成,數據需要在各個子系統中高效能,低延遲的不停流轉。

傳統的企業訊息系統並不是 非常適合大規模的資料處理。為了已在同時搞定線上應用(訊息)和離線應用程式(資料文件,日誌)Kafka就出現了。 Kafka可以起到兩個作用:

  • 降低系統組網複雜度。

  • 降低程式設計複雜度,各個子系統不在是相互協商接口,各個子系統類似插口插在插座上,Kafka承擔高速資料匯流排的作用

Kafka主要特點:

  • 同時為發布和訂閱提供高吞吐量。據了解,Kafka每秒可生產約25萬個訊息(50 MB),每秒處理55萬個訊息(110 MB)。

  • 可進行持久化運算。將訊息持久化到磁碟,因此可用於大量消費,例如ETL,以及即時應用程式。透過將資料持久化到硬碟以及replication來防止資料遺失。

  • 分散式系統,易於向外擴展。所有的producer、broker和consumer都會有多個,都是分散式的。無需停機即可擴展機器。

  • 訊息被處理的狀態是在consumer端維護,而不是由server端維護。失敗時能自動平衡。

  • 支援online和offline的場景。

Kafka的設計重點:

1、直接使用linux 檔案系統的cache,來有效率地快取資料。

2、採用linux Zero-Copy提高發送效能。傳統的資料傳送需要傳送4次上下文切換,採用sendfile系統呼叫之後,資料直接在內核態交換,系統上下文切換減少 為2次。根據測試結果,可以提高60%的資料傳送效能。

3、資料在磁碟上存取代價為O(1)。 kafka以topic來進行訊息管理,每個topic包含多個part(ition),每個part對應一 個邏輯log,有多個segment組成。每個segment中儲存多個訊息(見下圖),訊息id由其邏輯位置決定,即從訊息id可直接定位到訊息的儲存 位置,避免id到位置的額外對應。每個part在記憶體中對應一個index,記錄每個segment中的第一個訊息偏移。發佈者發到某個topic的消息會被均勻的分佈到多個part上(隨機或根據用戶指定的回調函數進行分佈),broker收到發布訊息往對應part的最後一個segment上添加該消息,當當某個segment上的消息條數達到配置值或訊息發佈時間超過閾值時,segment上的消息會被flush到磁碟,只有flush到磁碟上的消息訂閱者才能訂閱到,segment達到一定的大小後將不會再往該segment寫數據,broker會建立新的segment。

4、明確分佈式,也就是所有的producer、broker和consumer都會有多個,都是分散式的。 Producer和broker之間沒有負 載均衡機制。 broker和consumer之間利用zookeeper進行負載平衡。

所有broker和consumer都會在zookeeper中進 行註冊,並且zookeeper會保存他們的一些元資料資訊。如果某個broker和consumer發生了變化,所有其他的broker和 consumer都會被通知。

以上是Kafka的特點有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何使用PHP和Kafka實現即時股票分析 如何使用PHP和Kafka實現即時股票分析 Jun 28, 2023 am 10:04 AM

隨著網路和科技的發展,數位化投資已成為人們越來越關注的話題。許多投資人不斷探索研究投資策略,希望能獲得更高的投資報酬率。在股票交易中,即時的股票分析對決策非常重要,其中使用Kafka即時訊息隊列和PHP技術實現更是一種高效且實用的手段。一、Kafka介紹Kafka是由LinkedIn公司開發的一個高吞吐量的分散式發布、訂閱訊息系統。 Kafka的主要特點是

springboot+kafka中@KafkaListener動態指定多個topic怎麼實現 springboot+kafka中@KafkaListener動態指定多個topic怎麼實現 May 20, 2023 pm 08:58 PM

說明本項目為springboot+kafak的整合項目,故其用了springboot中對kafak的消費註解@KafkaListener首先,application.properties中配置用逗號隔開的多個topic。方法:利用Spring的SpEl表達式,將topics配置為:@KafkaListener(topics=“#{’${topics}’.split(’,’)}”)運行程序,console列印的效果如下

SpringBoot怎麼整合Kafka配置工具類 SpringBoot怎麼整合Kafka配置工具類 May 12, 2023 pm 09:58 PM

spring-kafka是基於java版的kafkaclient與spring的集成,提供了KafkaTemplate,封裝了各種方法,方便操作,它封裝了apache的kafka-client,不需要再導入client依賴org.springframework.kafkaspring-kafkaYML配置kafka:#bootstrap-servers:server1:9092,server2:9093#kafka開發位址,#生產者設定producer:#Kafka提供的序列化和反序列化類別key

如何利用React與Apache Kafka建構即時資料處理應用 如何利用React與Apache Kafka建構即時資料處理應用 Sep 27, 2023 pm 02:25 PM

如何利用React和ApacheKafka來建立即時資料處理應用介紹:隨著大數據與即時資料處理的興起,建構即時資料處理應用成為了許多開發者的追求。 React作為一個流行的前端框架,與ApacheKafka作為一個高效能的分散式訊息系統的結合,可以幫助我們建立即時資料處理應用。本文將介紹如何利用React和ApacheKafka建構即時資料處理應用,並

五種選擇的可視化工具,用於探索Kafka 五種選擇的可視化工具,用於探索Kafka Feb 01, 2024 am 08:03 AM

Kafka視覺化工具的五種選擇ApacheKafka是一個分散式串流處理平台,能夠處理大量即時資料。它廣泛用於建立即時資料管道、訊息佇列和事件驅動的應用程式。 Kafka的視覺化工具可以幫助使用者監控和管理Kafka集群,並且更好地理解Kafka資料流。以下是對五種流行的Kafka視覺化工具的介紹:ConfluentControlCenterConfluent

kafka視覺化工具比較分析:如何選擇最適合的工具? kafka視覺化工具比較分析:如何選擇最適合的工具? Jan 05, 2024 pm 12:15 PM

如何選擇合適的Kafka視覺化工具?五款工具比較分析引言:Kafka是一種高效能、高吞吐量的分散式訊息佇列系統,被廣泛應用於大數據領域。隨著Kafka的流行,越來越多的企業和開發者需要一個視覺化工具來方便地監控和管理Kafka叢集。本文將介紹五款常用的Kafka視覺化工具,並比較它們的特色和功能,幫助讀者選擇適合自己需求的工具。一、KafkaManager

springboot專案配置多個kafka的範例程式碼 springboot專案配置多個kafka的範例程式碼 May 14, 2023 pm 12:28 PM

1.spring-kafkaorg.springframework.kafkaspring-kafka1.3.5.RELEASE2.設定檔相關資訊kafka.bootstrap-servers=localhost:9092kafka.consumer.group.id=20230321可以並發消費的執行緒數(通常與partitionition# )kafka.consumer.concurrency=10kafka.consumer.enable.auto.commit=falsekafka.boo

go-zero與Kafka+Avro的實踐:建構高效能的互動式資料處理系統 go-zero與Kafka+Avro的實踐:建構高效能的互動式資料處理系統 Jun 23, 2023 am 09:04 AM

近年來,隨著大數據的興起和活躍的開源社區,越來越多的企業開始尋找高效能的互動式資料處理系統來滿足日益增長的資料需求。在這場技術升級的浪潮中,go-zero和Kafka+Avro被越來越多的企業所關注和採用。 go-zero是一款基於Golang語言開發的微服務框架,具有高效能、易用、易於擴展、易於維護等特點,旨在幫助企業快速建立高效的微服務應用系統。它的快速成長得