??????? Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統,它可以處理消費者規(guī)模的網站中的所有動作流數據。簡單地說,Kafka就相比是一個郵箱,生產者是發(fā)送郵件的人,消費者是接收郵件的人,Kafka就是用來存東西的,只不過它提供了一些處理郵件的機制。
一、Kafka的優(yōu)勢如下:
?????? 高吞吐量、低延遲:kafka每秒可以處理幾十萬條消息,它的延遲最低只有幾毫秒;
?????? 可擴展性:kafka集群支持熱擴展;
?????? 持久性、可靠性:消息被持久化到本地磁盤,并且支持數據備份防止數據丟失;
?????? 容錯性:允許集群中節(jié)點故障(若副本數量為n,則允許n-1個節(jié)點故障);
?????? 高并發(fā):支持數千個客戶端同時讀寫。
二、Kafka適合以下應用場景:
?????? 日志收集:一個公司可以用Kafka可以收集各種服務的log,通過kafka以統一接口服務的方式開放給各種consumer;
?????? 消息系統:解耦生產者和消費者、緩存消息等;
??????? 用戶活動跟蹤:kafka經常被用來記錄web用戶或者app用戶的各種活動,如瀏覽網頁、搜索、點擊等活動,這些活動信息被各個服務器發(fā)布到kafka的topic中,然后消費者通過訂閱這些topic來做實時的監(jiān)控分析,亦可保存到數據庫;
?????? 運營指標:kafka也經常用來記錄運營監(jiān)控數據。包括收集各種分布式應用的數據,生產各種操作的集中反饋,比如報警和報告;
?????? 流式處理:比如spark streaming和storm。