Kafka Note(一)基礎(chǔ)框架

(一)kafka基礎(chǔ)框架

A. 什么是kafka

  • kafka是MQ(即消息中間件),所有消息中間件都是基于生產(chǎn)者-消費(fèi)者模型來(lái)設(shè)計(jì)的;

  • 早期數(shù)據(jù)量不大、系統(tǒng)不復(fù)雜時(shí),只要有blocked queue就能實(shí)現(xiàn)該模型基本功能;

  • 由于微服務(wù)興起,系統(tǒng)被拆分多個(gè)子系統(tǒng)(工程),使用MQ完成多個(gè)服務(wù)作為生產(chǎn)者和消費(fèi)者。

  • kafka早期應(yīng)用場(chǎng)景時(shí)記錄網(wǎng)站用戶的活動(dòng)追蹤、日志聚合等。

B. 消息中間件的功能

  • 解耦

    • 原場(chǎng)景:組件a向組件b,c,d發(fā)送信息,現(xiàn)在需要改向b,c,e發(fā)送,這需要修改代碼才能行實(shí)現(xiàn);

    • 新場(chǎng)景:采用MQ,可讓a作為生產(chǎn)者,發(fā)送信息給MQ,然后讓后端bcde作為消費(fèi)者自行訂閱MQ中的信息(即不同topic);

  • 異步

    • 原場(chǎng)景:客戶端發(fā)送信息給a,a處理完(耗時(shí)20ms)后逐個(gè)向b,c,d發(fā)送消息,bcd各自需耗時(shí)200ms處理再返回給a,由a最后給到client已完成,共計(jì)用時(shí)200*3+20=620ms;

    • 新場(chǎng)景:客戶端依然發(fā)送給a組件,a作為生產(chǎn)者經(jīng)20ms處理后轉(zhuǎn)發(fā)給MQ,此時(shí)a可以直接回復(fù)client已完成,共計(jì)耗時(shí)20ms(無(wú)需等待bcd消費(fèi)者處理的時(shí)間);

  • 削峰:業(yè)務(wù)高峰期時(shí)生產(chǎn)速度比消費(fèi)速度快,但未及時(shí)消費(fèi)的數(shù)據(jù)可以積壓在MQ,在延后一段時(shí)間完成消費(fèi),保證不被打爆。

C. kafka優(yōu)缺點(diǎn)

  • 優(yōu)點(diǎn):

    • 高吞吐:10w/s;

    • 易于橫向擴(kuò)展;

    • 社區(qū)活躍度高

  • 缺點(diǎn):

    • 功能不豐富,缺乏插件;

    • 主要用于大數(shù)據(jù)領(lǐng)域(或日志消息等)

  • 瓶頸:

    • 核心性能瓶頸是網(wǎng)絡(luò)帶寬

    • 磁盤 & 內(nèi)存也是需要注意的,關(guān)系到頁(yè)緩存和順序?qū)懭?/p>

D. kafka的競(jìng)品

  • rocketMQ:

    • 吞吐能力和kafka一般(10w/s),擴(kuò)展性也很好,且經(jīng)過(guò)阿里雙11實(shí)戰(zhàn);

    • 插件也不豐富,主要用于電商場(chǎng)景

  • rabbitMQ:

    • 插件豐富,基于erlang實(shí)現(xiàn)(低延時(shí));

    • 但吞吐一般、擴(kuò)展能力弱

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容