Kafka基礎認識

Fingertip_beat發表於2018-05-03

    

1):Apache kafka介紹及架構詳解

假設一個場景:
    資料來源:
        應用系統A 產生的使用者訪問資料和訂單資料
                10000 條一秒鐘
                    push:推送資料
                訊息系統:佇列 產生的資料量>資料量
                    pusll:拉取資料

 

 

image

訊息系統kafka:
        分散式系統佇列系統
        分佈/訂閱功能
        不恰當比喻:   
                    釋出者來發布文章 -> 推送文章
                微信公眾號:    類似於  -Topic主題/類別
                    訂閱者1
                    訂閱則2
                    訂閱則3
                    訂閱則4
                    ...訂閱者 就能接受到這篇文章訊息



kafka的功能:
    -1:分散式訊息Message系統(釋出/訂閱功能)
        0.8.x功能

    -2:Connector API
        將Kafka Topics中的資料儲存到RDBMS資料庫中
        0.9.x

    -3:Stream Compute
        可以對Kafka中的資料進行流實計算功能
        0.10.x


SparkStreaming與kafka整合,使用的版本為0.8.2.x

kafka系統能夠通過分散式提交日誌處理資料,kafka中topics使用者
定於的一個類別


Kafka Cluster:
    - 訊息系統,儲存資料
        提交日誌格式檔案
    - 分散式:
        有多臺資料,進行儲存資料
    - Topic 
        儲存某一類的資料(訊息),類比於微信公眾號
        儲存資料類似於HDFS
         -i,按照分割槽partition儲存
             相當於資料夾下面有很多檔案
        -ii,分割槽資料有多個副本
             replications(每個資料有3個副本)
    - 分佈/訂閱
        消費者(使用者)可以訂閱Topic(類比於關注某個微信公眾號)
        只要生產者向Topic傳送資料,訂閱者就可以自動接受到資料
        進行處理

 

image

一個典型的Kafka叢集中包含若干個Producer,(Kafka支援水平擴充套件,一般Broker
數量越多,叢集吞吐率越高),若干個Consumer Group,以及一個Zookeeper叢集

Kafka通過Zookeeper管理叢集配置,選舉leader,以及在Consumer Group發生變化
時進行reablance。

Producer使用push模式將訊息釋出到broker,Consumer使用pull模式從broker訂閱
並消費訊息

 


TOPIC & PARTITION

image

一個Topic分為多個Partition來進行資料管理
一個Partition中的資料是有序,不可變的
使用偏移量(offset)唯一標識一條資料,是
一個long型別的資料;

Partiton接受到producer傳送過來資料後,會
產生一個遞增的offset偏移量資料,同是將數
據儲存到本地的磁碟檔案中(檔案內容追加
的方式寫入資料)

 

image

    基本懂得Kafka流程,搭建起來很簡單

相關文章