1. 程式人生 > >kafka-通俗易懂基礎概念篇

kafka-通俗易懂基礎概念篇

kafka python topic

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

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


Kafka是一個分布式的消息系統,作為用戶來說,只需要把數據扔給kafka,在需要的時候直接讀就可以了,非常方便,實現異步非io阻塞

kafka分為productorconsumerbroker

productor:消息生產者,就是向kafka裏面扔數據的一方(可以是多個

productor向同一個寫入)

consumer:消息消費者 ,就是從kafka裏面消費(取)數據的一方(也可以是多個consumer向同一個kafka取數據)

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


topic:一條消息流

partition:分區,每個topic可以按特定的分區邏輯分區,類似mysql的分表,

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重復消費



本文出自 “馬鵬飛——著” 博客,請務必保留此出處http://mapengfei.blog.51cto.com/1552412/1926063

kafka-通俗易懂基礎概念篇