kafka不支持讀寫分離原理分析
引言
前段時(shí)間在看 kafka 相關(guān)內(nèi)容,發(fā)現(xiàn) kafka “所有的”讀寫流量都在主 partition 上,從 partition 只負(fù)責(zé)備份數(shù)據(jù)。
那么為什么 kafka 從 partition 不跟其他中間件一樣承接讀流量?
讀寫分離的初衷
讀寫分離的初衷我覺(jué)得是利用讀流量 & 寫流量不同的特性做針對(duì)性的優(yōu)化,而這兩種流量我覺(jué)得區(qū)別如下
讀流量 | 寫流量 | |
---|---|---|
業(yè)務(wù)特性 | 展示類的業(yè)務(wù) | 操作類業(yè)務(wù) |
流量占比 | 高 | 低 |
可接受數(shù)據(jù)延遲 | 較大 | 非常小 |
增長(zhǎng)的可預(yù)見(jiàn)性 | 高峰/安全攻擊可能會(huì)突發(fā)增長(zhǎng) | 總體平穩(wěn) |
使用 kafka 的業(yè)務(wù)特征
- 操作型業(yè)務(wù),consumer 消費(fèi) producer 生產(chǎn)的消息,進(jìn)行自身業(yè)務(wù),這個(gè)消息就類似于 trigger
- 可支撐的流量較大,并且可支撐下游 consumer 較多,rebalance 需要一定的時(shí)間
kafka 架構(gòu)
- 以 topic 為單位,一 topic 可拆分多個(gè) partition,每個(gè) partition 都可以有多個(gè)從 partition,不同 partition 分布在不同 broker 上
以 partition 為單位,形成 AR(Assigned Repllicas),ISR(In Sync Repllicas),OSR(Out Sync Repllicas),主 partition 接收到消息后按照 ack 策略同步到 ISR 中從 partition
ack = 0,producer 發(fā)出消息后就不管了
ack = 1,producer 發(fā)出消息寫入主 partition 所在 broker 的磁盤就算成功
ack = all,producer 發(fā)出消息寫入主 partition 以及 ISR 上所有副 partition 的磁盤才算成功
kafka 沒(méi)有主從讀寫分離的原因
不能主從讀寫分離的原因
kafka 承接的大多是操作型業(yè)務(wù),這部分讀操作對(duì)數(shù)據(jù)延遲非常敏感。
kafka 主從同步為半同步復(fù)制,并且有部分 partition 在 OSR 上,數(shù)據(jù)延遲較大
kafka 主 partition 接收到消息后,可以根據(jù) ack 策略落盤,如果不是 all 的話存在數(shù)據(jù)丟失的風(fēng)險(xiǎn)
不需要主從讀寫分離的原因
kafka 本身就是多 partition 的架構(gòu),不同 parition 在不同的 broker 上,多主節(jié)點(diǎn)的結(jié)構(gòu)本身分流了流量
kafka 本身就有成熟的 rebalance 機(jī)制,partition 上線與下線都比較無(wú)感
以上就是kafka不支持讀寫分離原理分析的詳細(xì)內(nèi)容,更多關(guān)于kafka不支持讀寫分離的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
archlinux 羅技K380 F1-F12 功能鍵鎖定(實(shí)現(xiàn)方法)
這篇文章主要介紹了archlinux 羅技K380 F1-F12 功能鍵鎖定,在windows中羅技K380可以安裝Logitech Options來(lái)實(shí)現(xiàn)這個(gè)Fn鎖定功能,需要的朋友可以參考下2023-04-04HTTP請(qǐng)求首部字段及響應(yīng)首部字段詳解
這篇文章主要介紹了HTTP請(qǐng)求首部字段及響應(yīng)首部字段,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06git中commit和push的區(qū)別及說(shuō)明
這篇文章主要介紹了git中commit和push的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11一不小心git rebase后出現(xiàn)(master|REBASE 1/10)的問(wèn)題及解決辦法
這篇文章主要介紹了一不小心git rebase后出現(xiàn)(master|REBASE 1/10)的問(wèn)題及解決辦法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07VsCode中ctrl+s后會(huì)在當(dāng)前目錄下自動(dòng)生成dist目錄的方法
這篇文章主要介紹了VsCode中ctrl+s后會(huì)在當(dāng)前目錄下自動(dòng)生成dist目錄,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09