成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Kafka竟然不支持讀寫分離!今天才知道!

開發(fā) 后端 Kafka
Kafka竟然不支持讀寫分離!今天才知道! 在 Kafka 中,生產(chǎn)者寫入消息、消費者讀取消息的操作都是與 leader 副本進(jìn)行交互的,從 而實現(xiàn)的是一種主寫主讀的生產(chǎn)消費模型。數(shù)據(jù)庫、Redis 等都具備主寫主讀的功能,與此同時還支持主寫從讀的功能,主寫從讀也就是讀寫分離,為了與主寫主讀對應(yīng),這里就以主寫從讀來稱呼!

[[263555]]

在 Kafka 中,生產(chǎn)者寫入消息、消費者讀取消息的操作都是與 leader 副本進(jìn)行交互的,從 而實現(xiàn)的是一種主寫主讀的生產(chǎn)消費模型。數(shù)據(jù)庫、Redis 等都具備主寫主讀的功能,與此同時還支持主寫從讀的功能,主寫從讀也就是讀寫分離,為了與主寫主讀對應(yīng),這里就以主寫從讀來稱呼!

Kafka 并不支持主寫從讀,這是為什么呢?

從代碼層面上來說,雖然增加了代碼復(fù)雜度,但在 Kafka 中這種功能完全可以支持。對于 這個問題,我們可以從“收益點”這個角度來做具體分析。主寫從讀可以讓從節(jié)點去分擔(dān)主節(jié) 點的負(fù)載壓力,預(yù)防主節(jié)點負(fù)載過重而從節(jié)點卻空閑的情況發(fā)生。但是主寫從讀也有 2 個很明顯的缺點:

  • 數(shù)據(jù)一致性問題。數(shù)據(jù)從主節(jié)點轉(zhuǎn)到從節(jié)點必然會有一個延時的時間窗口,這個時間 窗口會導(dǎo)致主從節(jié)點之間的數(shù)據(jù)不一致。某一時刻,在主節(jié)點和從節(jié)點中 A 數(shù)據(jù)的值都為 X, 之后將主節(jié)點中 A 的值修改為 Y,那么在這個變更通知到從節(jié)點之前,應(yīng)用讀取從節(jié)點中的 A 數(shù)據(jù)的值并不為***的 Y,由此便產(chǎn)生了數(shù)據(jù)不一致的問題。
  • 延時問題。類似 Redis 這種組件,數(shù)據(jù)從寫入主節(jié)點到同步至從節(jié)點中的過程需要經(jīng) 歷網(wǎng)絡(luò)→主節(jié)點內(nèi)存→網(wǎng)絡(luò)→從節(jié)點內(nèi)存這幾個階段,整個過程會耗費一定的時間。而在 Kafka 中,主從同步會比 Redis 更加耗時,它需要經(jīng)歷網(wǎng)絡(luò)→主節(jié)點內(nèi)存→主節(jié)點磁盤→網(wǎng)絡(luò)→從節(jié) 點內(nèi)存→從節(jié)點磁盤這幾個階段。對延時敏感的應(yīng)用而言,主寫從讀的功能并不太適用。

現(xiàn)實情況下,很多應(yīng)用既可以忍受一定程度上的延時,也可以忍受一段時間內(nèi)的數(shù)據(jù)不一致的情況!

那么對于這種情況,Kafka 是否有必要支持主寫從讀的功能呢?

主寫從讀可以均攤一定的負(fù)載卻不能做到完全的負(fù)載均衡,比如對于數(shù)據(jù)寫壓力很大而讀 壓力很小的情況,從節(jié)點只能分?jǐn)偤苌俚呢?fù)載壓力,而絕大多數(shù)壓力還是在主節(jié)點上。而在 Kafka 中卻可以達(dá)到很大程度上的負(fù)載均衡,而且這種均衡是在主寫主讀的架構(gòu)上實現(xiàn)的。我們來看 一下 Kafka 的生產(chǎn)消費模型,如下圖所示:

 

 

在 Kafka 集群中有 3 個分區(qū),每個分區(qū)有 3 個副本,正好均勻地分布在 3個 broker 上,灰色陰影的代表 leader 副本,非灰色陰影的代表 follower 副本,虛線表示 follower 副本從 leader 副本上拉取消息。當(dāng)生產(chǎn)者寫入消息的時候都寫入 leader 副本,對于上圖中的情形,每個 broker 都有消息從生產(chǎn)者流入;當(dāng)消費者讀取消息的時候也是從 leader 副本中讀取 的,對于圖 8-23 中的情形,每個 broker 都有消息流出到消費者。

我們很明顯地可以看出,每個 broker上的讀寫負(fù)載都是一樣的,這就說明 Kafka 可以通過 主寫主讀實現(xiàn)主寫從讀實現(xiàn)不了的負(fù)載均衡。上圖展示是一種理想的部署情況,有以下幾種 情況(包含但不僅限于)會造成一定程度上的負(fù)載不均衡:

(1)broker 端的分區(qū)分配不均。當(dāng)創(chuàng)建主題的時候可能會出現(xiàn)某些 broker 分配到的分區(qū)數(shù) 多而其他 broker 分配到的分區(qū)數(shù)少,那么自然而然地分配到的 leader 副本也就不均。

(2)生產(chǎn)者寫入消息不均。生產(chǎn)者可能只對某些 broker 中的 leader 副本進(jìn)行大量的寫入操 作,而對其他 broker 中的 leader 副本不聞不問。

(3)消費者消費消息不均。消費者可能只對某些 broker 中的 leader 副本進(jìn)行大量的拉取操 作,而對其他 broker 中的 leader 副本不聞不問。

(4)leader 副本的切換不均。在實際應(yīng)用中可能會由于 broker 宕機(jī)而造成主從副本的切換, 或者分區(qū)副本的重分配等,這些動作都有可能造成各個 broker 中 leader 副本的分配不均。

對此,我們可以做一些防范措施。

針對***種情況,在主題創(chuàng)建的時候盡可能使分區(qū)分配 得均衡,好在 Kafka 中相應(yīng)的分配算法也是在極力地追求這一目標(biāo),如果是開發(fā)人員自定義的 分配,則需要注意這方面的內(nèi)容。對于第二和第三種情況,主寫從讀也無法解決。對于第四種 情況,Kafka 提供了優(yōu)先副本的選舉來達(dá)到 leader 副本的均衡,與此同時,也可以配合相應(yīng)的 監(jiān)控、告警和運維平臺來實現(xiàn)均衡的優(yōu)化。

在實際應(yīng)用中,配合監(jiān)控、告警、運維相結(jié)合的生態(tài)平臺,在絕大多數(shù)情況下 Kafka 都能 做到很大程度上的負(fù)載均衡。

總的來說,Kafka 只支持主寫主讀有幾個優(yōu)點:

可以簡化代碼的實現(xiàn)邏輯,減少出錯的可能;將負(fù)載粒度細(xì)化均攤,與主寫從讀相比,不僅負(fù)載效能更好,而且對用戶可控;沒有延時的影響;

在副本穩(wěn)定的情況下,不會出現(xiàn)數(shù)據(jù)不一致的情況。為此,Kafka 又何必再去實現(xiàn)對它而言毫無收益的主寫從讀的功能呢?這一切都得益于 Kafka 優(yōu)秀的架構(gòu)設(shè)計,從某種意義上來說,主寫從讀是由于設(shè)計上的缺陷而形成的權(quán)宜之計。 

責(zé)任編輯:龐桂玉 來源: Java后端技術(shù)
相關(guān)推薦

2024-01-01 08:10:40

Go語言map

2024-01-05 08:45:35

Go語言map

2011-12-09 20:28:50

2022-02-16 15:07:34

協(xié)程JavaQuasar

2024-05-13 16:22:25

固態(tài)硬盤接口硬盤

2020-07-02 10:30:52

iPhone蘋果北斗

2021-10-27 07:15:36

Go 循環(huán)引用

2020-07-22 08:01:41

Python開發(fā)運算符

2020-10-09 06:48:19

Pythonswitch語句

2021-04-20 19:23:07

語法switch-casePython

2010-06-24 17:42:08

服務(wù)不支持chkcon

2020-10-20 07:13:44

Web動態(tài)化CSS

2022-04-26 10:13:00

哈希索引MySQLInnoDB

2021-12-09 10:51:47

Go繼承

2021-12-15 07:49:22

Go語言設(shè)計

2010-06-24 17:37:59

服務(wù)不支持chkcon

2010-12-20 14:22:27

Nvidia英特爾Sandy Bridg

2021-02-01 13:53:53

StringlongJava

2009-09-01 13:18:38

雪豹蘋果操作系統(tǒng)

2009-02-23 09:19:33

windows 7啟動畫面
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 久久久久久国产精品久久 | 天天艹日日干 | 特级特黄特色的免费大片 | 国产成人一区二区三区 | 国产黄色精品在线观看 | 久久综合伊人一区二区三 | 综合精品久久久 | 91精品久久久久久久久久入口 | 精品欧美一区免费观看α√ | 日韩中文一区 | 国产小视频精品 | 一区二区三区视频免费观看 | 美女视频一区二区三区 | 国产精品成人在线观看 | 国产精品色一区二区三区 | 国产午夜亚洲精品不卡 | 中文字幕日本一区二区 | 成人三级网址 | 一区二区三区在线 | 九九久久精品视频 | 精品久久伊人 | 国产第一页在线播放 | 亚洲国产aⅴ成人精品无吗 国产精品永久在线观看 | 狠狠夜夜 | 午夜日韩精品 | 中文视频在线 | 中文字幕亚洲区一区二 | 久久精品二区 | 韩日av片| 久久精品国产a三级三级三级 | 成人精品免费 | 欧美精品一区久久 | 黑色丝袜三级在线播放 | 日韩国产一区二区三区 | 欧美日韩一区二区三区四区 | 欧洲一区二区视频 | 99精品视频一区二区三区 | 国产a级毛毛片 | 国产成人午夜精品影院游乐网 | 精品国产一区二区久久 | 午夜视频在线免费观看 |