Apache 頂級項目 Apache Pulsar 成長回顧


關於 Apache Pulsar
Apache Pulsar 是 Apache 軟件基金會頂級項目,是下一代雲原生分布式消息流平台,集消息、存儲、輕量化函數式計算為一體,采用計算與存儲分離架構設計,支持多租戶、持久化存儲、多機房跨區域數據復制,具有強一致性、高吞吐以及低延時的高可擴展流數據存儲特性。

本篇文章,我們將帶着剛剛圓滿結束的 Pulsar Summit 精華版內容,為大家分享 Apache Pulsar 的成長歷史。

關於 Pulsar Summit 會議

本次 Pulsar Summit 主要是由 StreamNative 和 Splunk 主辦,集結了來自歐洲、亞洲、北美洲眾多國際大廠的 CEO、開發人員、數據架構師等。

還有來自 Pulsar Committer、Contributor 的實戰經驗分享,涉及發布/訂閱消息、事件流、無服務器計算、實時分析、事件驅動應用程序和管理生產中的關鍵任務等最佳實踐。

Pulsar 項目的成長

Pulsar 最初是以「集消息和事件流為一體的雲原生平台」出現在眾人面前。Pulsar 項目的支撐不僅僅是地域性的,其實更是一個全球性的開源項目,達到了幾大洲用戶/使用率同步增長的效果。

很多國際性公司,比如 Splunk、Narvar、Instructure、騰訊、虎牙等,這些公司大多看中了 Pulsar 的獨特性能,開始用 Pulsar 替代之前的系統進行部署自己的產品,也通過他們的用戶擴大了 Pulsar 項目影響力和社區活躍度,使 Pulsar 獲得了更多關注。

想要獲取更多使用 Pulsar 來部署自己產品的公司列表,可以參考:
https://pulsar.apache.org/en/powered-by/

Pulsar 優勢

同時,在年初我們整理「Pulsar 年度報告」時,也總結出了 Pulsar 的一些優勢,比如:

  • 可以增加產品敏捷性,讓公司快速應對市場變化;
  • 為業務開發解鎖新的使用方向;
  • 降低開發成本以及改進客戶體驗等。

Apache Pulsar 用其差異化特色吸引了越來越多的用戶。

在調查中也發現,Pulsar 雲原生、存儲與計算分離和以分片為中心的架構設計,是用戶最喜愛的亮點。還有可強伸縮性和高彈性,Pulsar 真的是把 MQ行業的特點拿捏的恰到好處呢,費用不太高還很能干,性價比超高的好嘛!!

我們在收集 Pulsar 用戶案例時也發現,大部分用戶將 Pulsar 用作打造異步應用程序、核心項目等實踐,或者是從 Kafka 等項目遷移到 Pulsar 來構建 ETL 流水線(提取、轉換、加載)操作等。這也是目前 Pulsar use case 的核心使用場景。

同時在個人使用用戶中,大家使用最多的功能:比如 Pub/Sub、多租戶、跨區域復制、Pulsar Functions 和 Connectors、分層存儲,都成為用戶青睞的特點,說明 Pulsar 也有其不可替代之處,更多的實用特點還等着大家一起去開發鴨!

社區成長

我們在之前很多時候都是在介紹 Pulsar 產品的一些動態,或者技術上的一些更新發布,很少會去提 Pulsar 整個社區的動態。

其實從 2019 年 1月開始,到現在 2020 年 6 月份左右,contributor 的數量從 48 人增加到 280 人左右,18 個月的時間達到了 7 倍級的數量增長。從數據增長上,我們也很感謝大家的參與和項目支持!

Pulsar 的未來

從最開始的項目孵化到現在,基礎層面的代碼基本沒有改動過,一直執行着它「分層分塊」架構的模型。在產品方面,Pulsar 的工程師們致力於將最好的基礎設施讓用戶們去構建消息系統。

同時,在社區里聆聽和接納用戶們的不同需求和建議,對 Pulsar 產品進行一代又一代的更新和完善。

從一開始的分層存儲 Pub-Sub 開始搭建,添加 Schema 讓整個數據變得更加結構化;添加 Functions 讓 Pulsar 擁有實時流數據的處理能力;添加 Connector 讓 Pulsar 可以與第三方系統更簡易化對接;引入 SQL,可以使用 SQL 語言在 Pulsar 里查詢數據等等。

這些都是 Pulsar 產品的大進步。

Pulsar Message

Pulsar 作為一個消息中間件,它的目標一直都是提供最核心的消息發布和訂閱,讓用戶使用不同的協議、語言,從不同的地方來生產和消費消息。

對於消息協議的支持,Pulsar 最近也是在不停地拓展。比如已經開源的 KoP(Kakfa on Pulsar)AoP(AMQP on Pulsar)。這些我們之前都發布過文章,大家可以點擊文字直接跳轉查看。

當然,之后我們也會開源出 MoP(MQTT on Pulsar),讓 Pulsar 可以更加方便地支持這些不同類型的消息協議。

同時關於一些新功能也都在擴展中,比如事務支持、REST API 的生產和消費、只讀 broker 、exclusive producer、自動擴縮容等等。這些都會逐漸在未來版本中一一呈現。

Pulsar Storage

在存儲方面,Pulsar 也在致力成為流數據存儲平台,基本都是圍繞在性能、可操作性和成本開銷方面去進行開發,使 Pulsar 和 BookKeeper 作為高效平台在不同環境中運行。比如說雲端存儲或者持久化部署。

但其實從存儲層面看的話,Pulsar 的每一個大版本都圍繞存儲做了改進,也奠定了存儲和計算分離的功能。

  • 分布式 log:基礎存儲
  • Schema:結構化存儲
  • 分層存儲:無限流容量
  • Topic 壓縮:表和流二元表達
  • Key-Value:函數狀態訪問

包括新增的 Columnar Offloader、State store 等功能,也在存儲層面為 Pulsar 的功能性添磚加瓦。

Pulsar Processing

有了消息和存儲后,為了讓收集到 Pulsar 的數據有價值,就需要計算過程了。Pulsar 在計算層面主要是想做到實時、大規模地處理事件流。

  • 利用 Pulsar Functions,可以實現更輕量級/無服務器的計算
  • 利用 Pulsar-Flink/Spark 集成集合,可以進行批量復雜地流處理計算
  • 利用 Pulsar SQL 在 Pulsar 里進行 SQL 或 Presto 語言的交互式查詢

同時 Pulsar 也在開發 event storage API 接口,可以方便用戶直接訪問 Pulsar storage,用同一套接口就可以實現搭建 Pulsar-Flink/Spark 等集成應用。

除了在計算方面跟其他系統打造集成外,Pulsar 也在 Functions 上做足了功課。接下來的版本更新中,可能會針對 Functions 更新以下功能:

  • 可插拔的語言運行
  • Function registry
    • 共享和重用功能
  • 可操作性
    • 版本控制功能
    • 升級/回滾
    • A / B測試
  • Connectors(批處理/流連接器)

為了使用戶可以更容易地使用 Pulsar,也誕生了很多 managements tool。比如前期的 Pulsar Manager、Pulsarctl、Pulsar Helm Chart 等等。

更多 Pulsar 管理工具,大家可以在 StreamNative Hub 進行查看和使用:https://hub.streamnative.io

Q & A

Q:組合 Function(Function Mesh)會添加么?
A:目前這個功能的內部實現已經有雛形了,會在接下來的時間內開源出此項目,敬請期待。

Q:消息軌跡這個功能,后續會支持嗎?
A:Pulsar 可能不會直接支持消息軌跡,但可能會通過添加命令的方式去追蹤實現。

Q:Presto SQL 查詢 BookKeeper 里面的消息,會對正在生產消費的消息有多大性能影響?讀 BookKeeper 會影響寫性能嗎?
A:對於正在生產的消息,不會有太大的影響。

Q:Pulsar 以后會出商業版本嗎,定向支持金融企業?
A:Pulsar 目前核心的功能還是開源的狀態,跟企業相關的安全特性會以插件的方式去實現。后期會出商業化版本。

總 結

本次分享,主要是由 Pulsar Summit opening keynote 內容,向大家簡單概括了關於 Pulsar 的一些功能性、概念性的細節。希望通過此次分享,可以讓大家更清楚的了解 Pulsar 在生產使用中的目的和效果。

如需查看更多細節,可以點擊回放視頻進行查看。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM