在QCon北京2018大會(huì)上,Apache Pulsar作為一個(gè)新興的分布式消息流平臺(tái),吸引了眾多開(kāi)發(fā)者與架構(gòu)師的關(guān)注。其核心愿景在于解決現(xiàn)代數(shù)據(jù)驅(qū)動(dòng)型應(yīng)用面臨的復(fù)雜挑戰(zhàn)——如何高效、統(tǒng)一地處理實(shí)時(shí)數(shù)據(jù)流,并彌合消息傳遞、實(shí)時(shí)計(jì)算與持久化存儲(chǔ)之間的鴻溝。Pulsar的設(shè)計(jì)哲學(xué)并非簡(jiǎn)單替代現(xiàn)有的消息隊(duì)列或流處理系統(tǒng),而是旨在提供一個(gè)融合性的平臺(tái),將消息、計(jì)算和存儲(chǔ)三層架構(gòu)統(tǒng)一起來(lái),構(gòu)建下一代的數(shù)據(jù)處理和存儲(chǔ)服務(wù)。
傳統(tǒng)架構(gòu)中,消息系統(tǒng)(如Kafka、RabbitMQ)、計(jì)算框架(如Flink、Spark Streaming)與存儲(chǔ)系統(tǒng)(如HDFS、數(shù)據(jù)庫(kù))往往是分離的。這種分離導(dǎo)致了數(shù)據(jù)冗余、運(yùn)維復(fù)雜、端到端延遲增加以及一致性保障困難等問(wèn)題。Apache Pulsar通過(guò)其獨(dú)特的架構(gòu)設(shè)計(jì),試圖從根本上改變這一局面。
分層架構(gòu)與統(tǒng)一模型
Pulsar的核心創(chuàng)新之一是其分層的系統(tǒng)架構(gòu)。它將服務(wù)層(Broker) 與存儲(chǔ)層(BookKeeper) 分離。Broker集群是無(wú)狀態(tài)的,專門負(fù)責(zé)消息的傳遞、路由和輕量級(jí)處理;而持久化存儲(chǔ)職責(zé)則由Apache BookKeeper負(fù)責(zé),這是一個(gè)專為高吞吐、低延遲持久化日志數(shù)據(jù)而設(shè)計(jì)的分布式存儲(chǔ)系統(tǒng)。這種分離帶來(lái)了極佳的彈性擴(kuò)展能力——計(jì)算(Broker)和存儲(chǔ)(BookKeeper)可以獨(dú)立擴(kuò)展,互不影響。
在此架構(gòu)基礎(chǔ)上,Pulsar實(shí)現(xiàn)了消息、計(jì)算和存儲(chǔ)的統(tǒng)一抽象。對(duì)于應(yīng)用而言,Pulsar提供了一個(gè)統(tǒng)一的“流”模型。無(wú)論是作為消息隊(duì)列(Queue)、發(fā)布訂閱(Pub-Sub)還是更高級(jí)的流處理(Streaming)場(chǎng)景,都可以通過(guò)同一套API和主題(Topic)語(yǔ)義來(lái)操作。這意味著開(kāi)發(fā)者無(wú)需在不同的系統(tǒng)間進(jìn)行繁瑣的數(shù)據(jù)搬運(yùn)和格式轉(zhuǎn)換,數(shù)據(jù)從攝入、處理到存儲(chǔ),可以在Pulsar內(nèi)部高效流轉(zhuǎn)。
統(tǒng)一的數(shù)據(jù)處理服務(wù)
Pulsar Functions 是Pulsar實(shí)現(xiàn)“計(jì)算統(tǒng)一”的關(guān)鍵組件。它是一個(gè)輕量級(jí)的計(jì)算框架,允許用戶以簡(jiǎn)單的函數(shù)形式(Java、Python、Go等)直接在Pulsar集群上對(duì)數(shù)據(jù)流進(jìn)行處理。這些函數(shù)可以消費(fèi)來(lái)自一個(gè)或多個(gè)主題的消息,進(jìn)行處理、轉(zhuǎn)換、聚合后,將結(jié)果寫入另一個(gè)主題。Pulsar Functions 的引入,使得一些簡(jiǎn)單的ETL、實(shí)時(shí)聚合或事件響應(yīng)邏輯無(wú)需引入龐大的外部流處理引擎,直接在消息系統(tǒng)內(nèi)部完成,極大地簡(jiǎn)化了架構(gòu),降低了延遲和運(yùn)維成本。
對(duì)于更復(fù)雜的流處理任務(wù),Pulsar通過(guò)原生的Pulsar IO 連接器框架和與主流計(jì)算引擎(如Apache Flink、Apache Spark、Apache Storm)的深度集成,無(wú)縫地將數(shù)據(jù)流橋接到外部計(jì)算框架中。Pulsar的“無(wú)限”數(shù)據(jù)保留策略(得益于BookKeeper的持久化能力)意味著歷史數(shù)據(jù)可以直接在存儲(chǔ)層進(jìn)行訪問(wèn),為批流一體(如Apache Flink的批流統(tǒng)一處理)和回溯分析提供了便利,進(jìn)一步模糊了實(shí)時(shí)與離線處理的邊界。
統(tǒng)一的存儲(chǔ)服務(wù)
在存儲(chǔ)層面,Apache BookKeeper 提供了堅(jiān)實(shí)、可擴(kuò)展的基石。它將數(shù)據(jù)以日志段(Ledger)的形式存儲(chǔ)在多個(gè)存儲(chǔ)節(jié)點(diǎn)(Bookie)上,保證了數(shù)據(jù)的強(qiáng)一致性和高可用性。Pulsar利用這一特性,實(shí)現(xiàn)了:
與展望
在QCon北京2018的分享中,Apache Pulsar所展示的“消息、計(jì)算和存儲(chǔ)的統(tǒng)一”理念,指向了云原生時(shí)代數(shù)據(jù)處理架構(gòu)的未來(lái)。它通過(guò)解耦、分層和原生集成的設(shè)計(jì),提供了一個(gè)高性能、高彈性、易運(yùn)維的一站式平臺(tái),用于構(gòu)建實(shí)時(shí)數(shù)據(jù)管道和流式應(yīng)用。
采用Pulsar意味著可以減少技術(shù)棧的復(fù)雜性,降低多系統(tǒng)間數(shù)據(jù)同步的延遲與風(fēng)險(xiǎn),并能夠靈活應(yīng)對(duì)業(yè)務(wù)規(guī)模的增長(zhǎng)。隨著Pulsar生態(tài)的持續(xù)完善(如事務(wù)支持、Schema Registry的強(qiáng)化、更多連接器的開(kāi)發(fā)),它正日益成為構(gòu)建統(tǒng)一數(shù)據(jù)處理和存儲(chǔ)服務(wù)的強(qiáng)力候選,為從物聯(lián)網(wǎng)、實(shí)時(shí)分析到金融交易等廣泛場(chǎng)景提供堅(jiān)實(shí)的數(shù)據(jù)基礎(chǔ)設(shè)施。
如若轉(zhuǎn)載,請(qǐng)注明出處:http://www.erru.com.cn/product/52.html
更新時(shí)間:2026-04-08 05:45:57