概念
基于發(fā)布/訂閱模式的分布式消息隊列
分布式 基于發(fā)布和訂閱模式的消息隊列
本身最新定位:分布式流式事件處理平臺
除了緩存存儲數(shù)據(jù) 還支持了數(shù)據(jù)流式計算能力 不用
-
發(fā)布/訂閱模式
image.png
多個的生產(chǎn)者發(fā)布不同的數(shù)據(jù)到 topic 隊列上(主題隊列)
不同的消費(fèi)者,訂閱自己所需要的topic(主題)
使用消息隊列的好處
解耦合
緩沖, 流量消峰
異步處理
日志處理:實(shí)時計算場景中將數(shù)據(jù)緩存到消息隊列中,解決大量日志傳輸?shù)膯栴}。-
集群架構(gòu)
zk集群 kafka集群
image.png
image.png
主備架構(gòu) broker節(jié)點(diǎn) broker-controller主節(jié)點(diǎn)
zk 集群存放 kafka集群上所有元數(shù)據(jù)
主節(jié)點(diǎn)是由zk選舉得到的 leader副本是由 controller 主節(jié)點(diǎn)選舉得到的 組件
kafka集群 每個節(jié)點(diǎn)叫做broker 主角色叫做controller broker
producer 生產(chǎn)者
consumer group 消費(fèi)者組
consumer消費(fèi)者topic如何分布式存儲
topic 主題 數(shù)據(jù)的分類
partition分區(qū) 主題是分布式存儲的 放在不同的broker上
replication副本
leader副本 對外讀寫的 生產(chǎn)者消費(fèi)者直接打交道
follower副本 同步leader副本的數(shù)據(jù) 時刻準(zhǔn)備成為leader
另外kafka的數(shù)據(jù)是存放在頁緩存和linu磁盤當(dāng)中,每個分區(qū)的offset是唯一的
磁盤當(dāng)中每個分區(qū)以segment片段存在
xxx.log
xxx.index offset的稀疏索引
xxx.time space 時間戳索引


