1轰异、kafka概述
1.1 定義:
kafka 是一個分布式的基于發(fā)布/訂閱模式的消息隊列(Message Queue),主要應用于大數據實時處理領域仆邓。
1.2.1 應用場景
異步處理(解耦):
比如發(fā)送短息:填寫注冊信息 -》 數據入庫 -》同時調用發(fā)送信息接口 -》不等待發(fā)送結果返回,就返回注冊成功提示淋袖。
削峰填谷:
解耦
可恢復性
緩沖
靈活性(分布式鸿市,橫向擴容,下線節(jié)點)& 峰值處理能力
異步通信
1.2.2 消息隊列的兩種模式
點對點模式(消費者主動拉取數據即碗,數據消費后清除)
發(fā)布/訂閱模式(消費者主動拉取數據焰情,消費者需要頻繁訪問隊列,如果沒有數據處理剥懒,相對比較浪費消費者資源)
消費者自己決定消費速度
減輕broker的壓力
1.3 kafka 架構
注冊中心(zookeeper):offset消息偏移量内舟,0.9版本offset存儲在zk,之后存儲在broker的offset中
生產者(producer):生產數據(message)到 topic的一個partition初橘,并備份
kafka 集群(cluster)節(jié)點(broker)
主題(topic -- leader/follower)
消息(message)
分區(qū)(partition)提高并發(fā)
消費者(consumer):消費topic的數據
消費者組(consumer group):某一個分區(qū)只能被某一個消費者組中的一個消費者消費验游;多個消費者充岛,提高消費效率;
消費者數量大于主題分區(qū)數量批狱,會造成多出的消費者資源浪費