Kafka簡介

概念

基于發(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 時間戳索引

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容