kafka極簡入門(一)--簡介

前言

kafka是一款Apache組織下的一款開源流處理平臺。由Scala開發語言編寫實現。
流平臺具備三個關鍵功能:segmentfault

  • 發佈和訂閱記錄流,相似於消息隊列或企業消息傳遞系統。
  • 以容錯的持久方式存儲記錄流。
  • 處理記錄流。

kafka的主要應用場景:服務器

    • 創建實時流數據管道,在系統之間進行數據傳輸。
    • 構建實時流應用程序以轉換或響應數據流。

    kafka的幾個核心概念,理解這幾個概念對kafka的正確使用十分重要。spa

    1. topic
    消息主題,不管是發佈仍是消費都是以topic爲單位,通常一個topic對應一種業務場景blog

    2. partition
    分區,一個主題能夠對應1~N個分區,kafka能夠保證單個分區的消息的FIFO,而不能保證整個topic消息的FIFO(除非該topic只有一個partition)。kafka的高吞吐的原理也是主要經過增長分區實現的。
    topic跟partition關係隊列

    3. broker
    一個broker表示一臺服務器,一個broker能夠包含多個主題的多個分區。多個broker能夠構成kafka集羣。每一個broker有一個惟一的id。關於分區在broker上的分配策略後面會講到。開發

    kafka集羣

    4. producer
    生產者,負責往指定的topic推送消息的角色。
    producer.pngrem

    5. consumer
    消費者,負責從指定topic消費消息的角色。get

    6. consumer group
    消費組,一個消費組能夠包含多個消費者,一個分區只能同時給同一個消費組內的一個消費者消費(這裏要注意,若是是多個消費組同時消費一個分區是容許的,並且各自的消費偏移量互不干擾)。kafka

    7.replication
    副本集,副本分首領(leader)副本和跟隨(follower)副本, 分區至少有一個leader副本,0~N個follower副本,producer和consumer負責跟leader副本交互,follower只負責同步leader的數據,以防在leader掛掉的時候,選舉一個follower當選新的leader從而實現高可用。同步

    8.offset
    偏移量,標識一個消費者在分區中消費到了哪一個位置,消費者每次消費消息的時候都會帶上offset,消費完能夠自動提交當前的offset或手動提交,取決於配置。

    kafka極簡入門(二)--安裝

    相關文章
    相關標籤/搜索