<cite id="ffb66"></cite><cite id="ffb66"><track id="ffb66"></track></cite>
      <legend id="ffb66"><li id="ffb66"></li></legend>
      色婷婷久,激情色播,久久久无码专区,亚洲中文字幕av,国产成人A片,av无码免费,精品久久国产,99视频精品3
      網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

      如何選擇合適的 Diskless Kafka

      0
      分享至


      隨著越來越多企業(yè)將 Kafka 遷移至云原生架構(gòu),AutoMQ 正逐漸成為 Kafka 用戶的云端優(yōu)選。作為兼容 Apache Kafka 協(xié)議、專為云設(shè)計(jì)的新一代發(fā)行版,AutoMQ 憑借高性能、彈性擴(kuò)展和極致成本等優(yōu)勢,在全球范圍內(nèi)的熱度持續(xù)攀升,GitHub Star 數(shù)也順勢突破 8k 大關(guān)。在海外社區(qū)涌現(xiàn)的眾多討論與推文中,我們發(fā)現(xiàn)了這樣一篇來自開發(fā)者的深度好文,將其內(nèi)容翻譯并呈現(xiàn)給大家,概述如下。

      Apache Kafka 雖已成為流數(shù)據(jù)領(lǐng)域的事實(shí)標(biāo)準(zhǔn),但其誕生于 IDC 時(shí)代的“存算一體”架構(gòu)在云原生環(huán)境下正顯露疲態(tài):高昂的跨可用區(qū)(Cross-AZ)流量成本與難以解耦的存算資源,成為企業(yè)數(shù)字化基礎(chǔ)設(shè)施中不可忽視的隱形債務(wù)。伴隨著云存儲(chǔ)技術(shù)的成熟,Diskless Kafka 逐漸成為下一代消息中間件演進(jìn)的必然趨勢。

      在這場架構(gòu)變革中,我們不僅將深入剖析 Diskless Kafka 興起的根本原因,更將目光投向目前唯一的開源、成熟的 Diskless Kafka 方案——AutoMQ。以此為切入點(diǎn),重點(diǎn)探討 Kafka 向基于共享存儲(chǔ)架構(gòu)演進(jìn)的技術(shù)路徑,并將從各個(gè)維度深度剖析 Diskless Kafka 設(shè)計(jì)背后的核心權(quán)衡,助您充分理解不同架構(gòu)的優(yōu)劣,從而選擇出真正適合自己的 Kafka 方案。

      引 言

      自問世以來,Apache Kafka 已確立了其作為分布式消息領(lǐng)域“事實(shí)標(biāo)準(zhǔn)”的地位,支撐著全球無數(shù)企業(yè)的關(guān)鍵業(yè)務(wù)——從微服務(wù)通信到實(shí)時(shí)分析,應(yīng)用場景無處不在。

      然而,它的架構(gòu)誕生于本地?cái)?shù)據(jù)中心(On-Premise)主導(dǎo)的時(shí)代。在那時(shí),服務(wù)器硬件通常需要預(yù)先采購,且網(wǎng)絡(luò)帶寬遠(yuǎn)不及今日。當(dāng)這種設(shè)計(jì)理念被移植到現(xiàn)代云環(huán)境時(shí),弊端便顯露無疑:跨可用區(qū)(Cross-AZ)的網(wǎng)絡(luò)流量成本飆升,且難以實(shí)現(xiàn)計(jì)算與存儲(chǔ)的獨(dú)立擴(kuò)展。

      這一現(xiàn)狀正推動(dòng)著整個(gè)行業(yè)向一種全新的范式演進(jìn):Diskless Kafka。在本文中,我們將首先 Diskless Kafka 趨勢,并盤點(diǎn)市場上現(xiàn)有的解決方案。隨后,我們將重點(diǎn)剖析 AutoMQ——作為業(yè)內(nèi)最早嘗試實(shí)現(xiàn) Diskless Kafka 的先行者之一。

      Diskless Kafka vs Apache Kafka

      Kafka 誕生于十多年前的 LinkedIn,旨在為生產(chǎn)者(Producer)與消費(fèi)者(Consumer)提供一種高效的解耦手段;雙方均通過 Broker 進(jìn)行交互以傳遞消息。正如前文所述,Kafka 誕生的時(shí)代背景具有以下特征:

      • 主要依賴本地?cái)?shù)據(jù)中心(IDC),而非云服務(wù)。


      • 那時(shí)的網(wǎng)絡(luò)帶寬相當(dāng)有限;因此,構(gòu)建系統(tǒng)的標(biāo)準(zhǔn)做法是將計(jì)算與存儲(chǔ)緊密綁定在一起(即存算一體)。


      基于上述背景,Kafka 的 Broker 被設(shè)計(jì)為將消息直接持久化存儲(chǔ)在本地磁盤上,并通過 Broker 間的消息復(fù)制機(jī)制來實(shí)現(xiàn)數(shù)據(jù)冗余與高可用性。


      這意味著,擴(kuò)容存儲(chǔ)就必須增加機(jī)器節(jié)點(diǎn)。這種機(jī)制迫使用戶即便在現(xiàn)有計(jì)算資源利用率并不高的情況下,也不得不配置額外的 CPU 和內(nèi)存。


      除了資源效率低下的問題,Broker 級別的數(shù)據(jù)復(fù)制在云端多可用區(qū)(AZ)部署中還會(huì)帶來巨大的、往往被忽視的財(cái)務(wù)黑洞。這種成本主要體現(xiàn)在以下兩個(gè)方面:

      • 生產(chǎn)者流量成本:在一個(gè)典型的跨三個(gè)可用區(qū)部署的高可用架構(gòu)中,生產(chǎn)者必須將消息發(fā)送給指定分區(qū)的 Leader Broker。如果 Kafka 集群將 Leader 分區(qū)均勻分布在三個(gè)可用區(qū),那么大約有三分之二的情況下,生產(chǎn)者會(huì)將消息發(fā)送到位于不同可用區(qū)的 Broker 上(從而產(chǎn)生跨區(qū)流量費(fèi)用)。


      • 復(fù)制流量成本:當(dāng) Leader 節(jié)點(diǎn)接收到數(shù)據(jù)后,為了保證數(shù)據(jù)的持久性,必須將其復(fù)制到位于另外兩個(gè)可用區(qū)的 Follower 節(jié)點(diǎn)。這一過程會(huì)引發(fā)規(guī)模更為龐大的跨可用區(qū)數(shù)據(jù)傳輸,導(dǎo)致同一份消息數(shù)據(jù)產(chǎn)生“二次”網(wǎng)絡(luò)費(fèi)用。

      鑒于上述痛點(diǎn),各類采用全新架構(gòu)設(shè)計(jì)的系統(tǒng)正應(yīng)運(yùn)而生。

      Diskless Kafka

      盡管 Kafka 存在上述不足,但其 API 無疑已大獲全勝。它不僅是數(shù)據(jù)流領(lǐng)域的行業(yè)標(biāo)準(zhǔn),更衍生出了一個(gè)極為龐大且成熟的生態(tài)系統(tǒng)。


      因此,任何廠商若想提供更優(yōu)的替代方案,其首要前提必須是兼容 Kafka。推倒重來去構(gòu)建一套全新的系統(tǒng)并非良策,重構(gòu) Kafka 的存儲(chǔ)層才是更為高效的路徑。


      所謂無盤架構(gòu)(Diskless Architecture),指的是一種將所有消息徹底從 Broker 中剝離,并轉(zhuǎn)而全量存儲(chǔ)于對象存儲(chǔ)(Object Storage)的架構(gòu)模式。


      這種新模式徹底重塑了 Kafka 兼容系統(tǒng)在云端的運(yùn)作機(jī)制,其帶來的收益不僅立竿見影,更具顛覆性:

      成本優(yōu)勢:相比傳統(tǒng) Kafka Broker 所必需的高性能塊存儲(chǔ),對象存儲(chǔ)的單位容量(Per GB)成本要低整整一個(gè)數(shù)量級。


      彈性伸縮:Broker 節(jié)點(diǎn)轉(zhuǎn)變?yōu)闊o狀態(tài)的計(jì)算單元,可根據(jù)處理需求靈活進(jìn)行擴(kuò)縮容;與此同時(shí),存儲(chǔ)容量則完全依托于對象存儲(chǔ),能夠獨(dú)立、自動(dòng)地進(jìn)行擴(kuò)展。


      持久性與可用性:云對象存儲(chǔ)服務(wù)天生具備極高的持久性,并能自動(dòng)在多個(gè)可用區(qū)之間復(fù)制數(shù)據(jù)。這種高可靠性主要得益于糾刪碼(EC)技術(shù)與自動(dòng)數(shù)據(jù)復(fù)制機(jī)制的結(jié)合,且這些機(jī)制通常天然具備跨多可用區(qū)的能力。由于數(shù)據(jù)保護(hù)的重任已完全下沉由存儲(chǔ)層接管,系統(tǒng)不再需要維護(hù)昂貴且復(fù)雜的 Broker 級數(shù)據(jù)復(fù)制,從而徹底根除了與之伴生的跨可用區(qū)流量難題。


      值得特別指出的是,Diskless Kafka 架構(gòu)與 Kafka 分層存儲(chǔ)(KIP-405)所提出的分層架構(gòu)有著本質(zhì)區(qū)別。KIP-405 引入的是一套雙層存儲(chǔ)體系:

      • 本地存儲(chǔ)(Broker 本地磁盤):用于存儲(chǔ)最新的數(shù)據(jù)。

      • 遠(yuǎn)程存儲(chǔ)(S3/GCS/HDFS):用于存儲(chǔ)歷史數(shù)據(jù)。

      然而,在這種架構(gòu)下,Broker 無法實(shí)現(xiàn)徹底的無狀態(tài)化,我們前文討論過的種種痛點(diǎn)依然存在。

      從 WarpStream、BufStream 到 Aiven,各路廠商紛紛基于這一理念推出了 Kafka 的替代方案。這類平臺的集中爆發(fā),恰恰印證了其所解決的痛點(diǎn)是何等關(guān)鍵。雖然它們殊途同歸,都致力于通過對象存儲(chǔ)來實(shí)現(xiàn)降本與彈性增強(qiáng),但各家的技術(shù)成色與實(shí)現(xiàn)路徑卻不盡相同。

      在本文中,我將重點(diǎn)剖析AutoMQ——相較于其他競品,它提供了一種獨(dú)樹一幟的 Diskless Kafka 解法。

      AutoMQ

      100% Kafka 兼容與開放性

      正如我們之前所探討的,新一代系統(tǒng)必須嚴(yán)格遵循 Kafka 協(xié)議。

      Kafka 協(xié)議是圍繞本地磁盤構(gòu)建的。從向物理日志追加消息,到通過定位分段文件(Segment Files)中的偏移量(Offset)來服務(wù)消費(fèi)者,所有的操作邏輯都緊緊圍繞著這一設(shè)計(jì)核心。

      即便如此,基于對象存儲(chǔ)構(gòu)建 Kafka 兼容方案仍面臨巨大挑戰(zhàn)。暫且不論性能,對象存儲(chǔ)的寫入機(jī)制與磁盤迥異。我們無法像操作文件系統(tǒng)那樣,打開一個(gè)不可變對象并直接在末尾追加數(shù)據(jù)。

      對此,部分廠商(如 WarpStream、Bufstream)選擇另起爐灶,開發(fā)一套新協(xié)議來兼顧:

      • 適配對象存儲(chǔ)

      • 提供 Kafka 兼容性

      他們認(rèn)為,相較于基于開源 Kafka 協(xié)議進(jìn)行改造,這種方式更為直接。然而,此舉也帶來了嚴(yán)峻挑戰(zhàn):難以緊跟社區(qū)演進(jìn)的步伐,往往導(dǎo)致某些 Kafka API 特性的支持滯后甚至缺失。例如,WarpStream 就耗費(fèi)了相當(dāng)時(shí)日才補(bǔ)齊了對事務(wù)(Transactions)的支持。

      AutoMQ 并不認(rèn)可這種路徑。


      AutoMQ 選擇了一條不同的路:完整復(fù)用了除存儲(chǔ)層以外的所有 Kafka 上層邏輯。團(tuán)隊(duì)投入了大量精力,為 Kafka 量身打造了一款全新的存儲(chǔ)引擎,它既能與對象存儲(chǔ)無縫對接,又能向上提供 Kafka 協(xié)議運(yùn)行所必需的底層抽象。

      得益于此,AutoMQ 有底氣為其 Diskless Kafka 方案承諾 100% 的 Kafka 兼容性;即便 Kafka 社區(qū)后續(xù)推出了諸如隊(duì)列(queues)等前沿新特性,AutoMQ 也能通過合并上游代碼,實(shí)現(xiàn)無縫集成與同步支持。


      AutoMQ 的另一大亮點(diǎn)在于其開源屬性。這賦予了用戶極大的自由度——既可以嘗鮮試用,也能在自家環(huán)境中獨(dú)立部署。

      放眼當(dāng)下的市場,它是唯一一款兼具開源與生產(chǎn)級可用性的 Diskless Kafka 解決方案。反觀其他開箱即用的競品,無一例外均采用了閉源策略,而 Kafka 社區(qū)官方關(guān)于 Diskless Kafka Topic 的提案(KIP: Diskless Topic)尚處于討論之中,遠(yuǎn)未落地。

      絕不以犧牲低延遲為代價(jià)

      向?qū)ο蟠鎯?chǔ)寫入數(shù)據(jù)的速度,無疑要慢于本地磁盤。一些 Diskless Kafka 方案選擇了犧牲低延遲性能:它們必須等到消息在對象存儲(chǔ)中完成持久化后,才會(huì)向生產(chǎn)者返回確認(rèn)(ACK)。

      然而,這種方案伴隨著嚴(yán)重的代價(jià)。當(dāng)延遲出現(xiàn)數(shù)量級級別的惡化時(shí),客戶端往往需要投入額外的時(shí)間重新打磨配置,涵蓋從并發(fā)度到緩存大小的方方面面(關(guān)于緩存,后文會(huì)有更多討論)。在金融等對延遲極度敏感的關(guān)鍵業(yè)務(wù)場景中,這種程度的性能退化往往是不可接受的。

      AutoMQ 拒絕這種妥協(xié)。

      為此,他們借鑒了數(shù)據(jù)庫領(lǐng)域的一個(gè)經(jīng)典理念:預(yù)寫日志(Write Ahead Log, WAL)。這是一種專用于崩潰恢復(fù)與事務(wù)恢復(fù)的“僅追加”(Append-only)日志結(jié)構(gòu)。其原理十分簡單:所有的數(shù)據(jù)變更,必須先被完整記錄在日志中,隨后才能被應(yīng)用到數(shù)據(jù)庫的實(shí)際數(shù)據(jù)文件中。

      遵循這一原則,即便系統(tǒng)在事務(wù)提交之后、變更尚未刷入數(shù)據(jù)文件之前發(fā)生崩潰,系統(tǒng)依然可以通過讀取 WAL 來重放(Replay)這些變更。這對于數(shù)據(jù)庫管理系統(tǒng)(DBMS)確保數(shù)據(jù)的持久性至關(guān)重要。


      回到 AutoMQ 的架構(gòu)設(shè)計(jì)上來,每個(gè) Broker 都配備了一個(gè) WAL,其底層依托于 AWS FSx 或其他云廠商提供的同類高性能存儲(chǔ)服務(wù)。正是憑借這些通常具備跨可用區(qū)復(fù)制能力的強(qiáng)健共享服務(wù),AutoMQ 能夠確保從容應(yīng)對可用區(qū)(AZ)級別的故障。

      當(dāng) Broker 接收到消息時(shí),會(huì)先將其寫入內(nèi)存緩沖區(qū),待數(shù)據(jù)成功持久化至 WAL 后,便立即向生產(chǎn)者返回確認(rèn)響應(yīng)(ACK)。通過這種機(jī)制,客戶端無需等待消息寫入對象存儲(chǔ)(這一相對緩慢的過程),從而顯著降低了延遲。

      隨后,這些消息會(huì)被打包,通過異步方式批量刷寫(Flush)至對象存儲(chǔ)中。


      相較于等待一批消息被完整寫入對象存儲(chǔ),在消息持久化至 WAL(磁盤)后立即發(fā)送 ACK 響應(yīng),無疑要快得多。

      需要補(bǔ)充說明的一點(diǎn)是,由于磁盤設(shè)備主要承擔(dān) WAL 的職能以確保消息的持久性,系統(tǒng)對磁盤空間的需求極小。AutoMQ 默認(rèn)將 WAL 的大小設(shè)定為 10GB 即可滿足需求。

      基于 Leader 與無 Leader 架構(gòu)之爭

      究其核心,Apache Kafka 是一個(gè)基于 Leader(Leader-Based)的系統(tǒng)。對于 Topic 的每一個(gè)分區(qū),通常都配備了一個(gè) Leader 以及零個(gè)或多個(gè) Follower。所有的寫入操作都必須流向該分區(qū)的 Leader,而讀取請求則可以由 Leader 或該分區(qū)的 Follower 來承接。AutoMQ 依然沿用了這一架構(gòu)路線。


      在 Diskless Kafka 架構(gòu)下,鑒于所有 Broker 均共享底層的對象存儲(chǔ),Bufstream 和 WarpStream 等廠商認(rèn)為,傳統(tǒng)的“基于 Leader(Leader-Based)”架構(gòu)已非必需。

      相反,他們將所有 Broker 視為一個(gè)同構(gòu)的、無狀態(tài)的計(jì)算資源池;也就是說,任意 Broker 均可接收針對任意分區(qū)的寫入請求。業(yè)界通常將這種模式稱為“無 Leader(Leaderless)架構(gòu)”。


      接下來,我們將從多個(gè)維度深入探討,為您剖析這兩種架構(gòu)設(shè)計(jì)背后的權(quán)衡與取舍。

      額外的組件

      為了實(shí)現(xiàn)無 Leader 架構(gòu),相較于原生 Kafka 方案,系統(tǒng)在部署時(shí)必須引入一個(gè)額外的組件。由于每個(gè) Broker 都能處理讀寫請求,因此必須依靠協(xié)調(diào)器(Coordinator)來為客戶端指派具體的 Broker、管理元數(shù)據(jù),并重新實(shí)現(xiàn)那些原本由分區(qū) Leader 掌控的所有 Kafka 高級特性。

      然而,這種對外部協(xié)調(diào)器的依賴也帶來了一些副作用。它引入了 Broker 自身之外的外部依賴,從而使數(shù)據(jù)寫入鏈路變得更加復(fù)雜。同時(shí),這也推高了維護(hù) Kafka API 兼容性的成本,因?yàn)橹T如事務(wù)或冪等生產(chǎn)者等 Kafka 核心特性,都必須在協(xié)調(diào)器的深度參與下進(jìn)行徹底的重新實(shí)現(xiàn)。


      AutoMQ 堅(jiān)持采用基于 Leader 的架構(gòu),因此無需引入額外的“協(xié)調(diào)器”組件,其消息生產(chǎn)與消費(fèi)機(jī)制依然完美沿襲了 Kafka 的原生邏輯。客戶端會(huì)向 Bootstrap Broker 發(fā)起元數(shù)據(jù)請求,以獲知 Broker 列表、所在的可用區(qū)(AZ)以及各 Topic 分區(qū)的 Leader 信息。在生產(chǎn)數(shù)據(jù)時(shí),客戶端會(huì)始終嘗試與指定 Topic 分區(qū)的 Leader 進(jìn)行交互;而在消費(fèi)端,客戶端既可以連接 Leader,也可以連接任意副本節(jié)點(diǎn)。

      由于 AutoMQ 完整保留了 Leader 這一核心概念,因此系統(tǒng)架構(gòu)中無需任何額外的組件介入。

      寫入靈活性

      無 Leader 架構(gòu)賦予了寫入端極大的靈活性。

      其顯著優(yōu)勢之一在于大幅削減了跨可用區(qū)(Cross-AZ)傳輸?shù)某杀尽O到y(tǒng)能夠無縫地將流量從生產(chǎn)者路由至與其位于同一可用區(qū)的 Broker,從而避免了跨區(qū)流量費(fèi)用的產(chǎn)生。


      AutoMQ 基于 Leader 的架構(gòu)憑借共享對象存儲(chǔ)的能力,同樣能夠輕松規(guī)避寫入側(cè)的跨可用區(qū)流量。這主要涵蓋兩種場景:


      • 如果 Leader 與生產(chǎn)者處于同一可用區(qū):太棒了,這是最理想的情況,生產(chǎn)者只需照常向該 Broker 發(fā)送消息即可。

      • 如果 Leader 位于不同的可用區(qū):當(dāng)生產(chǎn)者請求目標(biāo) Broker 信息以發(fā)送消息時(shí),服務(wù)發(fā)現(xiàn)機(jī)制不會(huì)返回位于異地的 Leader 地址,而是會(huì)返回一個(gè)與生產(chǎn)者處于同一可用區(qū)的 Broker 地址。

      該同區(qū) Broker 會(huì)先將接收到的消息寫入對象存儲(chǔ)的臨時(shí)文件中。隨后,Leader 會(huì)“認(rèn)領(lǐng)”這些臨時(shí)文件,并將數(shù)據(jù)正式寫入實(shí)際的分區(qū)位置。之所以采取這種機(jī)制,是因?yàn)樵诨?Leader 的架構(gòu)中,所有針對分區(qū)的最終寫入操作,必須由 Leader 親自經(jīng)手。

      憑借這一設(shè)計(jì),AutoMQ 在徹底消除跨可用區(qū)流量費(fèi)用的同時(shí),并未犧牲 Kafka 的兼容性(因?yàn)?Leader 依然把控著分區(qū)數(shù)據(jù)的寫入權(quán))。

      讀取側(cè)的數(shù)據(jù)局部性

      在 AutoMQ 這類基于 Leader 的系統(tǒng)中,分區(qū) Leader 擁有得天獨(dú)厚的優(yōu)勢:極高的數(shù)據(jù)局部性(Data Locality)

      由于 Leader 統(tǒng)管其名下分區(qū)的所有寫入操作,那些最新生成且被頻繁訪問的“熱數(shù)據(jù)(Hot Data)”可以被直接駐留在其本地內(nèi)存緩存中。

      談及緩存,它堪稱 Diskless Kafka 架構(gòu)中的“生命線”。畢竟,直接從對象存儲(chǔ)讀取數(shù)據(jù)的性能表現(xiàn),終究無法與本地磁盤相提并論。


      除去性能層面的考量,過于頻繁的讀取請求還會(huì)導(dǎo)致成本激增,畢竟云服務(wù)商通常是依據(jù)對象存儲(chǔ)的 GET 請求次數(shù)來進(jìn)行計(jì)費(fèi)的。而在這一語境下,緩存機(jī)制不僅是提升性能的關(guān)鍵,更是兼顧成本效益(降本增效)的利器。


      這不僅有助于提升讀取性能,還能最大化數(shù)據(jù)在上傳至對象存儲(chǔ)前的批處理效率。

      正是基于這一架構(gòu)優(yōu)勢,AutoMQ 順理成章地設(shè)計(jì)出了雙層緩存機(jī)制:利用專用的日志緩存(Log Cache)來應(yīng)對寫入與熱點(diǎn)讀取,同時(shí)配備塊緩存(Block Cache)來服務(wù)于歷史數(shù)據(jù)。


      反之,無 Leader 架構(gòu)則可能受制于數(shù)據(jù)局部性(Data Locality)較低的困境。

      當(dāng)任意 Broker 隨時(shí)都能向同一分區(qū)寫入數(shù)據(jù)時(shí),該分區(qū)的數(shù)據(jù)就會(huì)被打散,以碎片化的形式分布在 S3 的大量小對象中,而這些對象又是由不同的 Broker 各自生成的。


      盡管這些對象最終會(huì)被合并,但在初始階段,Broker 仍不得不發(fā)起大量的 GET 請求,去拉取那些零散分布的對象以響應(yīng)消費(fèi)者。

      緩存固然能緩解這一壓力。但核心難題在于:在無 Leader 架構(gòu)下,既然所有 Broker 都能承接讀取請求,該如何制定高效的數(shù)據(jù)緩存策略?


      據(jù)我了解,為了解決這一問題,廠商們試圖將分區(qū)“綁定”給特定的 Broker。例如,WarpStream 利用一致性哈希算法將分區(qū)分配給特定的 Broker,由該節(jié)點(diǎn)全權(quán)負(fù)責(zé)指定分區(qū)的緩存與數(shù)據(jù)服務(wù)。

      這種做法實(shí)際上是變相回歸了“基于 Leader”的架構(gòu)理念,但同時(shí)也為此引入了額外的復(fù)雜性。由于缺乏本地?cái)?shù)據(jù)支持,為了填補(bǔ)由此產(chǎn)生的性能與成本缺口,工程團(tuán)隊(duì)不得不設(shè)計(jì)各種變通方案,以規(guī)避對象存儲(chǔ)的高延遲與昂貴的 API 調(diào)用成本(如 S3 GET 請求)。

      例如,WarpStream blog 中曾詳細(xì)闡述了他們?nèi)绾卫?mmap 技術(shù)來最小化 S3 API 的開銷。而這,恰恰是為了緩解因無法實(shí)現(xiàn)真正的數(shù)據(jù)局部性而不得不付出的設(shè)計(jì)代價(jià)。

      元數(shù)據(jù)管理

      基于 Leader 與無 Leader 架構(gòu)之間的分歧,不僅停留在表面,更深入到了元數(shù)據(jù)管理的底層邏輯。在 AutoMQ 的基于 Leader 模型中,元數(shù)據(jù)管理顯得大道至簡,因?yàn)樗苯訌?fù)用了 Kafka 成熟的分區(qū)邏輯。

      當(dāng) AutoMQ 寫入數(shù)據(jù)時(shí),它會(huì)像原生 Kafka 那樣,直接將數(shù)據(jù)寫入一個(gè)已經(jīng)開啟的分區(qū)。這種設(shè)計(jì)使得元數(shù)據(jù)的存儲(chǔ)與組織變得異常直觀清晰。其元數(shù)據(jù)占用的空間相對較小,主要僅需追蹤兩類信息:分區(qū)與 Leader Broker 的映射關(guān)系,以及數(shù)據(jù)對象在 S3 中的存儲(chǔ)位置。

      這一元數(shù)據(jù)管理重任,由 Kafka 原生的 KRaft 協(xié)議高效承接,該協(xié)議已直接集成于 Broker 核心之中。元數(shù)據(jù)的體量與消息批次的數(shù)量并不掛鉤,從而有效杜絕了數(shù)據(jù)膨脹的風(fēng)險(xiǎn)。

      反觀無 Leader 系統(tǒng),則面臨著頗為棘手的挑戰(zhàn)。由于其在架構(gòu)層面剝離了消息分區(qū)的概念,團(tuán)隊(duì)不得不投入巨大的工程精力,編寫海量代碼,只為從零開始復(fù)刻 Kafka 的核心功能。

      由于缺乏對分區(qū)日志擁有絕對控制權(quán)的“單一權(quán)威節(jié)點(diǎn)”,它們被迫對每一批次(Batch)的消息都保存詳盡的元數(shù)據(jù),包括其偏移量(Offset)、時(shí)間戳以及所包含的分區(qū)數(shù)量。

      這種復(fù)雜性體現(xiàn)在兩個(gè)維度。

      首先,海量的元數(shù)據(jù)通常需要引入一個(gè)獨(dú)立的事務(wù)型數(shù)據(jù)庫來進(jìn)行管理。這不僅大幅增加了運(yùn)維的負(fù)擔(dān),還為系統(tǒng)埋下了另一個(gè)潛在的單點(diǎn)故障隱患。


      其次,它極大地復(fù)雜化了數(shù)據(jù)訪問鏈路。存儲(chǔ)在 S3 中的數(shù)據(jù)本身不再具備“自包含性”;消費(fèi)者若要讀取數(shù)據(jù),必須將對象存儲(chǔ)中的原始數(shù)據(jù)與數(shù)據(jù)庫中對應(yīng)的元數(shù)據(jù)進(jìn)行動(dòng)態(tài)拼接。

      相比 AutoMQ 或傳統(tǒng) Kafka,這種合并過程要繁瑣得多。究其根本,這是因?yàn)闊o Leader 架構(gòu)拋棄了作為 Kafka 協(xié)議基石的那套簡單而高效的分區(qū)邏輯,從而不得不去承受的直接后果。

      結(jié) 語

      在本文中,我們首先審視了云原生時(shí)代 Kafka 所面臨的種種挑戰(zhàn),剖析了 Diskless Kafka 架構(gòu)興起的背后動(dòng)因及其核心內(nèi)涵。隨后,我們將目光投向了 AutoMQ 一一它是目前市場上唯一一款提供開源 Diskless Kafka 選項(xiàng)的解決方案。

      最后,我們從額外組件需求、寫入靈活性、讀取側(cè)的數(shù)據(jù)局部性以及元數(shù)據(jù)管理這四個(gè)維度出發(fā),深度對比了 Diskless Kafka 系統(tǒng)中的兩條主流技術(shù)路線:基于 Leader(Leader-based)與無 Leader(Leaderless)架構(gòu)的異同。

      特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲(chǔ)服務(wù)。

      Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

      相關(guān)推薦
      熱點(diǎn)推薦
      12月12日俄烏:歐盟終于發(fā)力,歐洲做出改變?

      12月12日俄烏:歐盟終于發(fā)力,歐洲做出改變?

      山河路口
      2025-12-12 18:03:37
      原子彈炸后百年內(nèi)寸草不生!今廣島卻住滿了人,看看專家怎么說?

      原子彈炸后百年內(nèi)寸草不生!今廣島卻住滿了人,看看專家怎么說?

      興趣知識
      2025-12-12 19:33:40
      10人聚餐逃單新進(jìn)展:放言稱絕不付錢 組局者身份被扒 是滴滴司機(jī)

      10人聚餐逃單新進(jìn)展:放言稱絕不付錢 組局者身份被扒 是滴滴司機(jī)

      鋭娛之樂
      2025-12-13 08:29:48
      何小鵬汽車這種惡趣味文化,應(yīng)該消失了

      何小鵬汽車這種惡趣味文化,應(yīng)該消失了

      張棟偉創(chuàng)業(yè)咨詢大學(xué)生就業(yè)創(chuàng)業(yè)
      2025-12-12 15:19:56
      頂級美人和普通美人的區(qū)別,看央視《大生意人》5位女演員就懂了

      頂級美人和普通美人的區(qū)別,看央視《大生意人》5位女演員就懂了

      陳述影視
      2025-12-09 21:51:09
      愛潑斯坦書桌驚現(xiàn)年輕女子昏睡照片,特朗普與多名女子合照曝光。

      愛潑斯坦書桌驚現(xiàn)年輕女子昏睡照片,特朗普與多名女子合照曝光。

      環(huán)球趣聞分享
      2025-12-13 13:30:09
      北京市委常委會(huì)召開會(huì)議,研究市委關(guān)于中央巡視反饋意見的整改落實(shí)方案等事項(xiàng)

      北京市委常委會(huì)召開會(huì)議,研究市委關(guān)于中央巡視反饋意見的整改落實(shí)方案等事項(xiàng)

      新京報(bào)
      2025-12-13 20:00:02
      高市政權(quán)下的日本,西方媒體終于察覺到不對勁了……

      高市政權(quán)下的日本,西方媒體終于察覺到不對勁了……

      環(huán)球時(shí)報(bào)國際
      2025-12-12 23:56:09
      別再說范曾糊涂了,87歲和37歲妻子造娃成功,女方才是真被套牢了

      別再說范曾糊涂了,87歲和37歲妻子造娃成功,女方才是真被套牢了

      甜檸聊史
      2025-12-11 21:38:28
      貪財(cái)風(fēng)流、嗜酒如命,香港樂壇一代鬼才,2000多首歌撐起整個(gè)武林

      貪財(cái)風(fēng)流、嗜酒如命,香港樂壇一代鬼才,2000多首歌撐起整個(gè)武林

      慕姑娘的讀行生活
      2025-12-13 07:00:07
      國家正式出手!2026年起個(gè)人存取現(xiàn)金按“新規(guī)”來,有存款的看!

      國家正式出手!2026年起個(gè)人存取現(xiàn)金按“新規(guī)”來,有存款的看!

      百態(tài)人間
      2025-12-13 16:09:19
      恩比德39+9賽季最強(qiáng)76人力克步行者 喬治23+5+6探花22分

      恩比德39+9賽季最強(qiáng)76人力克步行者 喬治23+5+6探花22分

      醉臥浮生
      2025-12-13 10:36:10
      37歲王思聰面相變了,下巴后縮禿頭有姨味,帶五個(gè)女伴憔悴不開心

      37歲王思聰面相變了,下巴后縮禿頭有姨味,帶五個(gè)女伴憔悴不開心

      銀河史記
      2025-12-13 15:10:31
      火箭掘金前瞻,6連客強(qiáng)度拉滿,對位約基奇申京需吸取首場教訓(xùn)

      火箭掘金前瞻,6連客強(qiáng)度拉滿,對位約基奇申京需吸取首場教訓(xùn)

      拾叁懂球
      2025-12-13 21:54:18
      楊玉環(huán)墓被出土,專家打開棺槨一看,千年前“傳言”竟然被證實(shí)!

      楊玉環(huán)墓被出土,專家打開棺槨一看,千年前“傳言”竟然被證實(shí)!

      芊芊子吟
      2025-12-13 17:45:05
      《沁園春·雪》發(fā)表,無人超越,一才女填詞,毛主席驚:拜受了

      《沁園春·雪》發(fā)表,無人超越,一才女填詞,毛主席驚:拜受了

      抽象派大師
      2025-12-13 05:01:21
      出事了,美軍突襲中國船只,銷毀貨物揚(yáng)長而去,外媒:一月前干的

      出事了,美軍突襲中國船只,銷毀貨物揚(yáng)長而去,外媒:一月前干的

      深析古今
      2025-12-13 13:17:25
      卷走53億!又一大佬帶全家跑路,欠中國銀行20億,投資者血本無歸

      卷走53億!又一大佬帶全家跑路,欠中國銀行20億,投資者血本無歸

      以茶帶書
      2025-12-09 23:33:58
      央視一哥畢福劍再婚生子,次子已上幼兒園,生活近況曝光

      央視一哥畢福劍再婚生子,次子已上幼兒園,生活近況曝光

      復(fù)轉(zhuǎn)這些年
      2025-12-07 15:39:25
      最邪惡的實(shí)驗(yàn):六女四男船上共渡100天,無法律約束,結(jié)局會(huì)怎樣

      最邪惡的實(shí)驗(yàn):六女四男船上共渡100天,無法律約束,結(jié)局會(huì)怎樣

      貓眼觀史
      2024-08-17 10:30:56
      2025-12-13 23:16:49
      InfoQ incentive-icons
      InfoQ
      有內(nèi)容的技術(shù)社區(qū)媒體
      11821文章數(shù) 51627關(guān)注度
      往期回顧 全部

      科技要聞

      比亞迪、小鵬、北汽,集體表態(tài)

      頭條要聞

      百萬支體溫計(jì)2周搶空 有老板備20萬現(xiàn)金一箱貨都沒買到

      頭條要聞

      百萬支體溫計(jì)2周搶空 有老板備20萬現(xiàn)金一箱貨都沒買到

      體育要聞

      有了風(fēng)騷白人禿頭,忘掉談了10年的前任

      娛樂要聞

      插刀門后,印小天一舉動(dòng)實(shí)現(xiàn)口碑逆轉(zhuǎn)

      財(cái)經(jīng)要聞

      鎂信健康闖關(guān)港交所:被指竊取商業(yè)秘密

      汽車要聞

      表面風(fēng)平浪靜 內(nèi)里翻天覆地!試駕銀河星艦7 EM-i

      態(tài)度原創(chuàng)

      房產(chǎn)
      本地
      數(shù)碼
      親子
      公開課

      房產(chǎn)要聞

      中糧好房子體系盛大亮相三亞,禮獻(xiàn)海南自貿(mào)港封關(guān)

      本地新聞

      云游安徽|阜陽三朝風(fēng)骨,傳承千年墨香

      數(shù)碼要聞

      Naya推Connect模塊化機(jī)械鍵盤,自由組合小鍵盤、軌跡球、觸控板

      親子要聞

      懷孕了,受害人竟是親兄妹,網(wǎng)友:相煎何太急呀!

      公開課

      李玫瑾:為什么性格比能力更重要?

      無障礙瀏覽 進(jìn)入關(guān)懷版 主站蜘蛛池模板: 亚洲欧美v国产蜜芽tv| 久久精品波多野结衣| 熟女在线国产| 7777久久亚洲中文字幕| 高雄县| 成人av片无码免费网站| 日韩乱码人妻无码中文字幕| 国产精品人妻在线观看| 亚洲性受| 南丹县| av性色av久久无码ai换脸| 亚洲精品无码永久在线观看你懂的 | 国产VA网站| 色欲人妻无码| 色综合?人妻| 在线播放国产一区二区三区 | 亚洲欧美视频| 性欧美大战久久久久久久| 欧美黑人欧美精品刺激| 2020精品自拍视频曝光| 91在线小视频| 久久人妻av2区| 青青草国产成人99久久| 国产喷水1区2区3区咪咪爱AV| 久久无码一区二区三区| 国产精品亚洲一区二区三区喷水 | 天堂网亚洲综合在线| 亚洲中文字幕av| 欧美巨大巨粗黑人性aaaaaa| 999国内精品视频免费| 亚洲国产精品成人av网| 麦盖提县| 婷婷国产成人精品视频| 日本边吃奶边摸边做在线视频 | 日韩日韩日韩日韩日韩| 久国产精品韩国三级视频| 午夜体验区| 日韩第一页浮力| 乌克兰少妇xxxx做受野外| 国产360激情盗摄全集| 性欧美高清|