初識kafka小結

第一部分:概述

    1.1 Kafka的定義:

      kafka是一個分佈式的基於發佈/訂閱模式消息隊列(Message Queue),主要應用於大數據實時處理領域。

    1.2消息隊列

     1.2.1傳統消息隊列的應用場景

    使用消息隊列的好處

    1)  解耦

        允許你獨立的擴展或修改兩邊的處理過程,只要確保他們遵守同樣的接口約束。(不需要兩邊同時在線,把消息放到消息隊列裏,什麼時候想取就什麼時候取)

    2)  可恢復性

        系統的一部分組件失效時,不會影響到整個系統。消息隊列降低了進程間的耦合度,所以即使一個處理消息的進程掛掉,加入消息隊列中的消息仍然可以在系統恢復後被處理。(跟解耦一樣,一部分組件出問題了消息就會放到消息隊列裏,等恢復了在從消息隊列裏把消息取出來)

    3)緩衝

        有助於控制和優化數據流經過系統的速度,解決生產消息和消費消息的處理速度不一致的情況。(當生產的數據大於一部分組件的消費能力,把大於這些組件消費能力的數據放入到消息隊列裏,慢慢消費)

    4)靈活性 & 峯值處理能力 

        在訪問量劇增的情況下,應用仍然需要繼續發揮作用,但是這樣的突發流量並不常見。如果爲以能處理這類峯值訪問爲標準投入資源隨時待命無疑是巨大的浪費。使用消息隊列能夠使關鍵組件頂住突發的訪問壓力,而不會因爲突發的超負荷的請求而完全崩潰。(可以動態的增加減少)

    5)異步通訊

         很多時候,用戶不想也不需要立即處理消息。消息隊列提供了異步處理機制,允許用戶把一個消息放入隊列,但並不立刻處理它。想向隊列种放入多少消息就放多少,然後在需要的時候再去處理它們。

  1.2.2消息隊列的兩種模式

        (1) 點對點模式一對一,消費者主動拉取數據,消息收到後消息清除)                                                                                            消息生產者生產消息發送到Queue中,然後消息消費者從Queue中取出並且消費消息。 消息被消費以後,queue 中不再有存儲,所以消息消費者不可能消費到已經被消費的消息。 Queue 支持存在多個消費者,但是對一個消息而言,只會有一個消費者可以消費。

        (2) 發佈/訂閱模式(一對多,消費者消費數據之後不會清除消息)                                                                                                      消息生產者(發佈)將消息發佈到 topic 中,同時有多個消息消費者(訂閱)消費該消 息。和點對點方式不同,發佈到 topic 的消息會被所有訂閱者消費。

  1.3 Kafka 基礎框架

 

    1Producer 消息生產者,就是向 kafka broker 發消息的客戶端;
    2Consumer 消息消費者,向 kafka broker 取消息的客戶端;
    3Consumer Group CG):消費者組,由多個 consumer 組成。消費者組內每個消費者負 責消費不同分區的數據,個分區只能由個組內消費者消費;消費者組之間互不影響。所 有的消費者都屬於某個消費者組,即消費者組是邏輯上的個訂閱者
    4Broker 一臺 kafka 服務器就是一個 broker。一個集羣由多個 broker 組成。一個 broker 可以容納多個 topic
    5Topic 可以理解爲一個隊列,生產者和消費者面向的都是topic
    6Partition爲了實現擴展性,一個非常大的 topic 可以分佈到多個 broker(即服務器)上, topic 可以分爲多個partition,每個 partition 是一個有序的隊列;
    7Replica副本,爲保證集羣中的某個節點發生故障時,該節點上的 partition 數據不丟失,
kafka 仍然能夠繼續工作,kafka 提供了副本機制,一個 topic 的每個分區都有若干個副本, 一個 leader 和若干個 follower
    8leader每個分區多個副本的“主”,生產者發送數據的對象,以及消費者消費數據的對 象都是 leader
    9follower每個分區多個副本中的“從”,實時從 leader 中同步數據,保持和 leader 數據
的同步。leader 發生故障時,某個 follower 會成爲新的 follower

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章