基礎(chǔ)篇

Kafka特點

  • 分布式
    1. 多分區(qū)
    2. 多副本
    3. 多訂閱者
    4. 基于ZooKeepler調(diào)度
  • 高性能
    1. 高吞吐量,每秒幾十萬
    2. 低延遲
    3. 高并發(fā)
    4. 時間復(fù)雜度o(1)
  • 持久性與擴展性
    1. 數(shù)據(jù)可持久化
    2. 容錯性
    3. 支持在線水平擴展
    4. 消息自動平衡

應(yīng)用場景

  • 消息隊列
  • 行為跟蹤
  • 元信息監(jiān)控
  • 日志收集
  • 流處理
  • 事件源
  • 持久性日志

基本概念

  • Producer:消息和數(shù)據(jù)的生產(chǎn)者,向Kafka的一個topic發(fā)布消息的進程/代碼/服務(wù)
  • Consumer:消息和數(shù)據(jù)的消費者,訂閱數(shù)據(jù)(Topic)并且處理其發(fā)布的消息的進程/代碼/服務(wù)
  • Consumer Group:邏輯概念,對于同一個topic,會廣播給不同的 group,一個group中,只有一個consumer可以消費該消息
  • Broker:物理概念,Kafka集群中的每個Kafka節(jié)點
  • Topic:邏輯概念,Kafka消息的類別,對數(shù)據(jù)進行區(qū)分、隔離
  • Partition:物理概念,Kafka下數(shù)據(jù)存儲的基本單元。一個Topic數(shù)據(jù),會被分散存儲到多個Partition,每個Parition是有序的
    1. 每一個Topic被切分為多個Partitions
    2. 消費者數(shù)目少于或等于Partition的數(shù)目
    3. Broker Group中的每一個Broker保存Topic的一個或多個Partitions
    4. Consumer Group中僅有一個Consumer讀取Topic的一個或多個Partition,并且是唯一的Consumer
  • Replication:同一個Partition可能會有多個Replica,多個Replica之間數(shù)據(jù)是一樣的
    1. 當集群中有Broker掛掉的情況,系統(tǒng)可以主動地使用Replicas提供服務(wù)
    2. 系統(tǒng)默認設(shè)置每一個Topic的replication系數(shù)為1,可以在創(chuàng)建Topic時單獨設(shè)置
    3. Replication的基本單位是Topic的Partition
    4. 所有的讀和寫都從Leader進,F(xiàn)ollowers只是作為備份
    5. Follower必須能夠及時復(fù)制Leader的數(shù)據(jù)
    6. 增加容錯性和可擴展性
  • Replication Leader:一個Partition的多個Replica上,需要一個Leader負責該Partition上與Producer和Consumer交互

基礎(chǔ)結(jié)構(gòu)

kafka1.png
  • Producer Api
  • Cnosumer Api
  • Streams Api
  • Connectors Api


    Kafka基礎(chǔ)結(jié)構(gòu)2.png

消息結(jié)構(gòu)

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

相關(guān)閱讀更多精彩內(nèi)容

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