日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

消息队列(4):Kafka

發(fā)布時間:2024/7/23 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 消息队列(4):Kafka 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

介紹

kafka是一個支持分布式的消息系統(tǒng),基于發(fā)布/訂閱模式。
kafka由LinkedIn公司開發(fā),2010年成為Apache頂級項目。
源碼是由java寫的。

基本概念

1、Broker

kafka集群中的每臺機器,都叫一個broker.

2、Topic(主題)

一個topic代表著一類消息,不同類型的消息,就用不同的topic區(qū)分。

3、Partition(分區(qū))

一個Partition就是一個隊列。一個topic可以由多個Partition組成。
一個topic的多個partition可能會放在多個Broker上。

4、Producer(生產(chǎn)者)

向kafka發(fā)消息的客戶端

5、Consumer(消費者)

從kafka拉消息的客戶端

6、Consumer Group(消費者組)

這個相當(dāng)于給消費者分了個組,在注冊消費者的時候,要先指定是哪個消費者組。
這個概念,主要是為了kafka實現(xiàn)廣播和單播的區(qū)分。
每多一個消費者組,topic的消息就會多復(fù)制一份給這個消費者組。
消費者組只會把消息發(fā)給本組的一個消費者。
這樣的話,如果實現(xiàn)單播,那就一個消費者一個消費者組;如果要廣播,那就多個消費者用一個消費者組。

7、Zookeeper

zk主要就是集群管理,包括Broker和Consumer。

圖解

發(fā)現(xiàn)有網(wǎng)友畫的一張很好的圖,把kafka的數(shù)據(jù)流畫的很清晰。

如上圖,簡單解釋下:
有兩個producer,producer0發(fā)topic0的消息,producer1發(fā)topic0和topic1的消息。
有3個broker作為一個集群,由zk管理,上圖沒畫zk,自行腦補。
我們看到數(shù)據(jù)存儲的最小單位是topic的某個partition。
這個圖,為每個Partition做了兩個副本,我們稱為一主兩從。
主用紅色標(biāo)識,從用黑色標(biāo)識。
producer發(fā)消息都是發(fā)到主上,然后由主復(fù)制消息到從上。
消費者拉消息,也是從主上拉。
主從關(guān)系由zk來管理,基本上就是zk選舉那一套。
consumer group0有一個消費者consumer0。
consumer0消費topic0的消息,所以我們看到consumer0從topic0的兩個partition上同時拉消息。
consumer group1有三個consumer,012。
這里先指出一個上圖的問題,一般一個consumer group是只消費一個topic的,我理解的是作者為了畫出消費者數(shù)量與partition數(shù)據(jù)的關(guān)系,才這么畫的,我們一個一個講。

首先看consumer group1消費topic0的情況,topic0有兩個partition,但consumer group1有三個consumer,所以consumer0負(fù)責(zé)拉topic0partiton0隊列的消息,consumer1負(fù)責(zé)拉topic0partition1隊列的消息。

再看consumer group1消費topic1的情況。由于topic1只有一個partition0,所以consumer group1也就只派出consumer0來拉這個topic1partition0的消息。

如果你認(rèn)認(rèn)真真把上面的看完,那么你應(yīng)該能理解,所謂的一個topic多少個partition對于多少個consumer了吧。還是以3個為例,理想狀況下,就是3個broker,對于一個tipic的3個partition的主分別部署在不同的broker上,主對于的兩個從分別不在其他兩個broker上。同時consumer group對應(yīng)有3個consumer,分別從3個partition主上拉消息。

總結(jié)

以上是生活随笔為你收集整理的消息队列(4):Kafka的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。