【Kafka】1.特性與零拷貝

Kafka的特性

  1. 能夠保證消息的可靠性投遞:
  • 持久化:producer生產(chǎn)的消息會(huì)在broker中進(jìn)行持久化到硬盤的操作播演,consumer從broker中拉取消息
  • 多副本+容災(zāi):producer生產(chǎn)的消息發(fā)送到leader broker之后冀瓦,會(huì)有follower進(jìn)行復(fù)制操作;當(dāng)leader發(fā)生故障時(shí)可以進(jìn)行故障轉(zhuǎn)移写烤,保證消息的正常消費(fèi)
  1. 高并發(fā):
  • 可以同時(shí)支持多個(gè)consumer并行消費(fèi)
  • 將topic進(jìn)行分區(qū)翼闽,在每個(gè)consumerGroup中的consumer可以消費(fèi)1個(gè)或者多個(gè)分區(qū),consumer之間是并行操作的
  1. 高吞吐量:
  • 消息批量操作:將多條消息整合為一個(gè)消息集進(jìn)行寫入洲炊,可以節(jié)省IO
  • 消息壓縮:可以通過配置compression.tye設(shè)置消息的壓縮類型感局,比如gzip —— producer在生產(chǎn)消息時(shí)會(huì)進(jìn)行壓縮后再寫入broker中,并且在消息中附帶壓縮方式暂衡;consumer在消費(fèi)消息時(shí)根據(jù)對(duì)應(yīng)的壓縮方式進(jìn)行解壓后處理询微;
  • 順序?qū)懕P:kafka寫入文件的方式為append-only,即只順序地在文件后追加內(nèi)容狂巢。這樣的好處是不需要進(jìn)行磁盤尋道和磁臂旋轉(zhuǎn)撑毛,可以直接進(jìn)行數(shù)據(jù)寫入;順序?qū)懭氲膱?zhí)行效率可以達(dá)到400M/s唧领,而隨機(jī)寫入在幾兆的級(jí)別藻雌。
  • 采用零拷貝減少了內(nèi)核空間與用戶空間之間的數(shù)據(jù)拷貝操作。

零拷貝

為什么需要拷貝

因?yàn)槭菢I(yè)務(wù)代碼將read文件的數(shù)據(jù)和write網(wǎng)卡的數(shù)據(jù)關(guān)聯(lián)起來斩个,數(shù)據(jù)需要放到用戶空間來胯杭,所以需要從內(nèi)核態(tài)-用戶態(tài)-內(nèi)核態(tài)的拷貝

Kafka消費(fèi)消息
優(yōu)化思路

不需要將數(shù)據(jù)拷貝到用戶空間中來,直接在內(nèi)核空間中完成數(shù)據(jù)轉(zhuǎn)發(fā)

producer發(fā)送消息
  1. broker通過MMAP系統(tǒng)調(diào)用將消息寫入文件受啥;
  2. MMAP映射的空間對(duì)于內(nèi)核空間和用戶空間都可見所以不用拷貝做个;
    3.寫入后等待操作系統(tǒng)異步地將內(nèi)存中的臟頁回寫到磁盤上 ( 可以通過配置producer.type=sync,即每次寫入內(nèi)存都執(zhí)行msync系統(tǒng)調(diào)用滚局,將MMAP的數(shù)據(jù)刷盤)
consumer拉取消息
  1. broker從文件中讀取并且通過網(wǎng)絡(luò)發(fā)送——sendfile系統(tǒng)調(diào)用
  2. broker從文件中讀取的buffer數(shù)據(jù)居暖,直接作為參數(shù)給到socket.send (file.read())函數(shù),直接從內(nèi)核空間完成數(shù)據(jù)從文件到socket buffer的轉(zhuǎn)發(fā)

參考

  1. Kafka的零拷貝技術(shù)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末藤肢,一起剝皮案震驚了整個(gè)濱河市太闺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌谤草,老刑警劉巖跟束,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件莺奸,死亡現(xiàn)場(chǎng)離奇詭異丑孩,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)灭贷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門温学,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人甚疟,你說我怎么就攤上這事仗岖√友樱” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵轧拄,是天一觀的道長(zhǎng)揽祥。 經(jīng)常有香客問我,道長(zhǎng)檩电,這世上最難降的妖魔是什么拄丰? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮俐末,結(jié)果婚禮上料按,老公的妹妹穿的比我還像新娘。我一直安慰自己卓箫,他們只是感情好载矿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著烹卒,像睡著了一般闷盔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上甫题,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天馁筐,我揣著相機(jī)與錄音,去河邊找鬼坠非。 笑死敏沉,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的炎码。 我是一名探鬼主播盟迟,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼潦闲!你這毒婦竟也來了攒菠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤歉闰,失蹤者是張志新(化名)和其女友劉穎辖众,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體和敬,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡凹炸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了昼弟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片啤它。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出变骡,到底是詐尸還是另有隱情离赫,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布塌碌,位于F島的核電站渊胸,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏台妆。R本人自食惡果不足惜蹬刷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望频丘。 院中可真熱鬧办成,春花似錦、人聲如沸搂漠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽桐汤。三九已至而克,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間怔毛,已是汗流浹背员萍。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拣度,地道東北人碎绎。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像抗果,于是被迫代替她去往敵國和親筋帖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355