您好,登錄后才能下訂單哦!
Kafka有哪些特點?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
Kafka的特點有:1、同時為發布和訂閱提供高吞吐量;2、可進行持久化操作,將消息持久化到磁盤,因此可用于批量消費;3、分布式系統,易于向外擴展;4、支持online和offline的場景。
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有哪些特點問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。