电竞比分网-中国电竞赛事及体育赛事平台

分享

為什么選擇Kafka

 關平藏書 2018-09-04
基于發(fā)布與訂閱的消息系統(tǒng)那么多,為什么Kafka會是一個更好的選擇呢?
1 多個生產(chǎn)者
Kafka可以無縫地支持多個生產(chǎn)者,不管客戶端在使用單個主題還是多個主題。所以它很適合用來從多個前端系統(tǒng)收集數(shù)據(jù),并以統(tǒng)一的格式對外提供數(shù)據(jù)。例如, 一個包含了多個微服務的網(wǎng)站,可以為頁面視圖創(chuàng)建一個單獨的主題,所有服務都以相同的消息格式向該主題寫入數(shù)據(jù)。消費者應用程序會獲得統(tǒng)一的頁面視圖,而無需協(xié)調(diào)來自不同生產(chǎn)者的數(shù)據(jù)流。
2 多個消費者
除了支持多個生產(chǎn)者外,Kafka也支持多個消費者從一個單獨的消息流上讀取數(shù)據(jù),而且消費者之間互不影響。這與其他隊列系統(tǒng)不同,其他隊列系統(tǒng)的消息一旦被一個客戶端讀取,其他客戶端就無法再讀取它。另外,多個消費者可以組成一個群組,它們共享一個消息流,并保證整個群組對每個給定的消息中處理一次。
3 基于磁盤的數(shù)據(jù)存儲
Kafka不僅支持多個消費者,還允許消費者非實時地讀取消息,這要歸功于Kafka 的數(shù)據(jù)保留特性。消息被提交到磁盤,根據(jù)設置的保留規(guī)則進行保存。每個主題可以設置單獨的保留規(guī)則,以便滿足不同消費者的需求,各個主題可以保留不同數(shù)量的消息。消費者可能會因為處理速度慢或突發(fā)的流量高峰導致無法及時讀取消息,而持久化數(shù)據(jù)可以保證數(shù)據(jù)不會丟失。消費者可以在進行應用程序維護時離線一小段時間,而無需擔心消息丟失或堵塞在生產(chǎn)者端。消費者可以被關閉,但消息會繼續(xù)保留在Kafka里。消費者可以從上次中斷的地方繼續(xù)處理消息。
4 伸縮性
為了能夠輕松處理大量數(shù)據(jù), Kafka從一開始就被設計成一個具有靈活伸縮性的系統(tǒng)。用戶在開發(fā)階段可以先使用單個broker ,再擴展到包含3個broker 的小型開發(fā)集群,然后隨著數(shù)據(jù)量不斷增長,部署到生產(chǎn)環(huán)境的集群可能包含上百個broker。對在線集群進行擴展絲毫不影響整體系統(tǒng)的可用性。也就是說, 一個包含多個broker的集群,即使個別broker失效,仍然可以持續(xù)地為客戶提供服務。要提高集群的容錯能力,需要配置較高的復制系數(shù)。
5 高性能
上面提到的所有特性,讓Kafka成為了一個高性能的發(fā)布與訂閱消息系統(tǒng)。通過橫向擴展生產(chǎn)者、消費者和broker, Kafka可以輕松處理巨大的消息流。在處理大量數(shù)據(jù)的同時,它還能保證 毫秒級的消息延遲。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多