Kafka入門——可達鴨都覺得不難?

簡介

        相信從事IT行業的你一定有聽過Kafka這門消息隊列技術。個人認爲是隨着行業的不斷成熟,出現了越來越多的系統,系統間的信息傳輸愈發頻繁,這促使了消息隊列技術的誕生。而Kafka由於其較強的性能與可靠性在各類技術中脫穎而出。
        希望本篇文章能對你入門Kafka帶來一點幫助。

基礎架構說明

在這裏插入圖片描述
    作爲消息隊列技術,就類似於Kafka當個快遞員,把快遞(消息)從A傳輸到B手中。如上圖所示,小智A就是消息生產者(Producer),可達鴨B就是消息消費者(Consumer)
    如果小智把食物發給可達鴨一隻神奇寶貝,那運輸的過程十分簡單。但如果小智這時打算把食物分發給多個神奇寶貝,卻只給了一大盒食物,神奇寶貝在喫食物的時候就容易搶食
在這裏插入圖片描述
    所以小智學聰明瞭,他決定把食物放到3個盒子裏,分別對應3個神奇寶貝;這樣他們就能有序的喫自己的食物,不容易混亂。這種把食物(消息)分成多份,並與消費者一一對應的方法,在Kafka裏就叫分區Partition
在這裏插入圖片描述
    emmmm… 我覺得我編不下去了哈哈哈,放一下Kafka的各種術語的解釋吧!

基礎專業術語解釋

  1. Producer
    消息生產者; 如Flume抽取的數據;
    如小智買的食物;

  2. Consumer
    消息消費者; 如Spark Streaming消費數據;
    如想喫食物的可達鴨

  3. Consumer Group
    消費者組; 由多個 Comsumer組成;
    如上圖中喫食物的傑尼龜,可達鴨,皮卡丘

  4. Broker
    一臺服務器就是一個Broker
    編不下去了…

  5. Topic
    可以理解爲一個隊列;生產者與消費者面向的都是一個隊列;
    好比食物的種類?

  6. Partition
    分區,類似Spark中的Partition;將數據分到不同的Partition中;但每個Partition都是一個有序隊列;
    相當於上圖中的飼料碗,保證餵食有序進行…

  7. Replica
    副本,當集羣故障的時候可以快速恢復數據;
    每個Partition有多個Replica副本;
    每個分區Partition都有一個Leader和多個Follower

  8. Leader
    Partition中的主信息;Producer發送數據的對象,Consumer消費數據的對象;
    我覺得Leader某種程度上等價於Partition;

  9. Follower
    不停的向Leader同步數據;當Leader掛掉的時候,Follower就會重新競選生成Leader;

面試題

  1. Kafka中的ISR,AR代表什麼?
    ISR(In-Sync Replica): 與 Leader保護同步的follower集合
    AR(Assigned Replica): 分區的所有副本

  2. Kafka中的HW,LEO等分別代表什麼?
    LEO (Log End Offset): 當前日誌文件中的下一條要寫入消息的Offset
    HW (High Watermak): 高水位,標誌Consumer可消費的日誌的範圍;
    如 HW = 6,則Consumer可消費的範圍是0 ~ 5

    https://www.cnblogs.com/yoke/p/11486196.html

  3. Kafka中是怎麼體現消息順序性的?
    每個分區內,每條消息都有一個offset,保證分區內有序

  4. Kafka中的分區器,序列化器,攔截器是否瞭解?他們之間的順序是如何?
    攔截器 --> 序列化器 --> 分區器

  5. Kafka生產者客戶端的整體結構是什麼樣子的?使用了幾個線程來處理?
    main線程,sender線程

  6. 討論消費者組中的消費者個數 M 與 topic的分區數 N 關係
    M > N: 有消費者無法數據
    M = N: 消費者 與 分區 一一對應
    M < N: 有消費者消費多個分區

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