kafka了解一下

在并發(fā)場景中,我們往往會使用隊列將一些耗時的行為給暫存起來嘀倒,然后后臺啟用業(yè)務(wù)程序去消化它。?

能夠提供這種隊列服務(wù)的局冰,redis测蘑,kafka各算一個。先說redis.? redis有個list類型康二,有排序功能碳胳,能存億級別的數(shù)據(jù),并且從頭或尾出數(shù)據(jù)復(fù)雜度O1沫勿,并且有原子級別的鎖機制挨约,講這么多就是為了證明它有能力使用于高并發(fā)場景接收C端的必要業(yè)務(wù)數(shù)據(jù)入隊。技術(shù)角度分析:C端10萬級別請求來了产雹,redis的list入隊有個原子性操作可以保證快去并且最終有序的入隊诫惭,這樣一來無論你同一時刻多少請求來了,最終redis總是一個一個來處理的蔓挖,只是它會很快速夕土,最終的結(jié)果就是它們有項先后順序的進入了redis的list,就成了我們常說的入隊列了瘟判。再說出隊怨绣,后臺啟用多進程/線程/協(xié)程并行去隊列里面取數(shù)據(jù)進行業(yè)務(wù)處理,當(dāng)然盡管你后臺程序可以是并行去redis隊列取數(shù)據(jù)并使用拷获,但是對于redis服務(wù)端來說都是一個個客戶端篮撑,可以做到讓所有客戶端只能一個個來pull隊列里面的數(shù)據(jù),劃重點啦4夜稀S俊!強調(diào)下redis服務(wù)端是異步行為將數(shù)據(jù)發(fā)送到客戶端的驮吱,這就會造成服務(wù)端單方面認為從它這里出去的數(shù)據(jù)都是按隊列里面的先進先出的順序發(fā)送給客戶端茧妒,它才不管你達到客戶端實際接受到的是不是還是原有的那個順序,反正服務(wù)端是按那個順序異步發(fā)的糠馆,有趣的地方也是這里了嘶伟,比如服務(wù)端先數(shù)據(jù)a出隊,其次數(shù)據(jù)b又碌,但說不定實際到達客戶端的是數(shù)據(jù)b九昧,道理很簡單異步行為,讓a先走毕匀,但接收a的客戶端可能卡了铸鹰,花了3秒才接住a,但接收b的客戶端信號很好皂岔,1秒就接住了蹋笼,那你a雖然比b先出隊半秒也還是比b慢。

再談kafka躁垛,kafka用到了zookeeper剖毯,意味著它可以分布式的集群部署便的簡單可靠強大并響應(yīng)快速,redis你自己去部署一個集群說實話我有點懵教馆,畢竟我沒有從它文檔里面直接獲取我該怎樣去配置它它就是集群了逊谋,但kafka有,kafka有訂閱通知那一套土铺,redis我印象中它也有胶滋,但是redis不保證推送過去的消息客戶端一定就接受到了,所以對于redis的訂閱通知來說悲敷,而且redis萬一掛了呢究恤,你可能會說有持久化啊,快照級別的后德,跟秒級別的持久化redis也都是有的部宿,但是服務(wù)不能停啊F芭取?呱汀!哪怕是一刻箱季,可見并不是它的拿手好菜涯穷,想反kafka的集群對于數(shù)據(jù)有效寫入的標(biāo)準(zhǔn)是可以根據(jù)實際寫成功服務(wù)器的數(shù)量為參考依據(jù)去保證的,打個比方集群3臺藏雏,2臺寫入成功了拷况,1臺失敗了,它就認為寫入成功了掘殴,并且它有自己的一套機制去保證集群服務(wù)器最低存活數(shù)量赚瘦,重啟掛掉的服務(wù)器,并且它總是建議你配置的服務(wù)器數(shù)量為奇數(shù)奏寨。再回正題起意,kafka訂閱通知發(fā)消息是以組為單位,一個組里面的成員應(yīng)該保持小于或者等于該主題創(chuàng)建時設(shè)置的分區(qū)個數(shù)病瞳,并且發(fā)送過來消息只會讓該組中的一個客戶端消費揽咕,劃重點啦1帷!G咨啤I枰住!? 3個kafka客戶端進一個H組了蛹头,訂閱了一個3分區(qū)的A主題顿肺,現(xiàn)在A主題有一個M消息過來了,它會直接發(fā)到訂閱該主題的組渣蜗,那么我們的H組就獲取到了M消息屠尊,但kafka內(nèi)部機制可以保證M消息只會被該組的一個成員客戶端給消費掉,這不就是提供了多進程并行處理隊列的數(shù)據(jù)的類似場景么耕拷,想想一下主題就是隊列讼昆,組里面的成員就是多個不同服務(wù)器里面進程,不就是多個進程同時等著該主題的消息發(fā)送過來斑胜,最終總有也只有一個客戶端成功處理掉該消息控淡,并且由于kafka支持分區(qū),組內(nèi)的成員可以各自對接一個分區(qū)止潘,實現(xiàn)并行2籼俊!凭戴!而且kafka消費是支持同步與異步的噢涧狮,這個可以對比redis了隊列和訂閱了。

kafka是基于zookeeper上玩耍的么夫,所以可以先去大概了解一下zookeeper受分布式場景喜愛的者冤。我感覺到了kafka主題分區(qū)并行,以及配置選舉档痪,leader涉枫,flower等還有很多秘密,估計只能實戰(zhàn)中慢慢再挖掘了腐螟,ok愿汰!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市乐纸,隨后出現(xiàn)的幾起案子衬廷,更是在濱河造成了極大的恐慌,老刑警劉巖汽绢,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吗跋,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機跌宛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門酗宋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人秩冈,你說我怎么就攤上這事本缠〕饪福” “怎么了入问?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長稀颁。 經(jīng)常有香客問我芬失,道長,這世上最難降的妖魔是什么匾灶? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任棱烂,我火速辦了婚禮,結(jié)果婚禮上阶女,老公的妹妹穿的比我還像新娘颊糜。我一直安慰自己,他們只是感情好秃踩,可當(dāng)我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布衬鱼。 她就那樣靜靜地躺著,像睡著了一般憔杨。 火紅的嫁衣襯著肌膚如雪鸟赫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天消别,我揣著相機與錄音抛蚤,去河邊找鬼。 笑死寻狂,一個胖子當(dāng)著我的面吹牛岁经,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蛇券,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼缀壤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了怀读?” 一聲冷哼從身側(cè)響起诉位,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎菜枷,沒想到半個月后苍糠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡啤誊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年岳瞭,在試婚紗的時候發(fā)現(xiàn)自己被綠了拥娄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡瞳筏,死狀恐怖稚瘾,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情姚炕,我是刑警寧澤摊欠,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站柱宦,受9級特大地震影響些椒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜掸刊,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一免糕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧忧侧,春花似錦石窑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至试吁,卻和暖如春棺棵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背熄捍。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工烛恤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人余耽。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓缚柏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親碟贾。 傳聞我的和親對象是個殘疾皇子币喧,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,792評論 2 345