kafka-通俗易懂基礎概念篇

       一些大的網站若是想統計用戶的訪問狀況,若是每一個用戶的訪問,都在後端通過一系列的用戶行爲分析,而後再給客戶返回結果這顯然不現實,直接寫入數據庫,數據庫也扛不住,mysql

這時候就須要一個消息系統,在用戶一個請求過來後,服務器只須要把此次操做扔到後端,不用管後端的處理結果,直接返回給用戶結果,這樣用戶體驗才比較好,比較符合實際狀況sql


Kafka是一個分佈式的消息系統,做爲用戶來講,只須要把數據扔給kafka,在須要的時候直接讀就能夠了,很是方便,實現異步非io阻塞數據庫

kafka分爲productorconsumerbroker後端

productor:消息生產者,就是向kafka裏面扔數據的一方(能夠是多個productor向同一個寫入)服務器

consumer:消息消費者 ,就是從kafka裏面消費(取)數據的一方(也能夠是多個consumer向同一個kafka取數據)負載均衡

broker:一個服務器實例,這個就是productor寫入的服務器(實例),consumer從這裏取數據,異步


topic:一條消息流分佈式

partition:分區,每一個topic能夠按特定的分區邏輯分區,相似mysql的分表,ide

partition的數據決定了一個topic能夠同時多少個進程(用戶)去寫入,消費它(若是一個topicpartition3,那麼productor只能同時起3個進程寫入,consumer同時有3個進程進行消費,若是啓動的數量超過3個則會一直等待)網站

consumer group:消費者組,相同groupidconsumer組成一個組

若是多個consumer都指定同一個groupid,則這些consumer會自動組成一個負載均衡的模式,消費一個topic

offset:一條消息在消息流中的偏移


舉例來講:數據12能夠往topicidtop1裏面寫入 ,數據34能夠往topicidtop2裏面寫入,

在消費時,指定同一個groupid,消費topicidtop1topic,連續消費2次能夠消費12,若是換一個groupid,則又從頭開始消費,也就是同一條消費,能夠被多個groupid重複消費

相關文章
相關標籤/搜索