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