kafka是什么?
kafka是一個高吞吐量的分布式發布訂閱的消息系統,可以處理消費者規模的網站中的所有動作流數據
可以簡單的理解為一個郵箱,生產者好比發送郵件的人,消費者好比接收郵件的人,kafka就是用來存儲郵件信息,不過它提供了一些處理郵件的機制
kafka中的關鍵字的含義和作用:(順序按照實際的操作書寫)
1.producer(生產者) 消息生產者,將消息發送給kafka集群的客戶端(kafka集群是由一個或者多個kafka節點組成)
2.broker(消息中間件處理節點,也就是kafka節點) 消息中間件處理節點,一個kafka節點就是一個broker,一個或者多個broker可以組成一個kafka集群
3.topic (主題) kafka根據topic對消息進行歸類,發布到kafka集群的每條消息都需要指定一個topic
4.partition(可以理解為分區的意思) 一個topic可以分為多個partition,每個partition內部是有序的
5.consumerGroup(消費組)每個消費者屬於一個特定的消費組,一條消息可以發送到多個不同的消息組,但是一個消息組中只能有一個消費者能夠消費該消息
6.consumer(消費者) 消息消費者,從kafka集群里面讀取數據的客戶端
生產者將消息發送到kafka集群中的對應的topic中,然后消費組中的對應消費者,對接收到的消息進行消費(純屬個人總結,如果有誤,請指出)
kafka的優勢:
1.高吞吐量、低延遲:kafka每秒可以處理幾十萬條的消息,它的延遲最低只有幾毫秒
2.持久性、可靠性:消息被持久化到本地磁盤,並且支持數據備份防止數據丟失
3.容錯性:允許集群中節點故障(若副本數量為N,則允許N-1個節點故障)
4.高並發:支持數千個客戶端同時讀寫
5.可擴展性:kafka集群支持熱擴展
kafka適合的應用場景
1.日志收集:一個公司可以用kafka收集各個服務的log,通過kafka以統一接口服務的方式,開放給各個消費者(consumer)
2.消息系統:解耦生產者和消費者、緩存消息等
3.用戶活動跟蹤:kafka經常被用來記錄web用戶或者app用戶的各種活動,如瀏覽網頁、搜索、點擊等活動,這些活動信息被各個服務器發布到kafka的topic中,然后消費者通過訂閱這些topic來做實時的監控分析,也可以保存到數據庫
4.運營指標:kafka也經常用來記錄運營監控數據。包括收集各種分布式應用的數據,生產各種操作的集中反饋,比如報警和報告