介紹 Apache Pulsar 的實驗性 Spring 支援

工程 | Soby Chacko | 2022 年 8 月 16 日 | ...

我們很高興宣布,我們正在孵化一個新的 用於 Apache Pulsar 的實驗性 Spring 專案。該專案旨在為編寫與 Apache Pulsar 互動的 Java 應用程式提供 Spring 友好的 API、建構區塊和程式設計模型。

Apache Pulsar 是一個受歡迎的訊息系統,在企業訊息傳遞和串流領域擁有不斷增長的開發者生態系統。以下是使用 Apache Pulsar 進行基於訊息的軟體應用程式開發的一些主要功能和優勢:

  • Apache Pulsar 透過各種訂閱模型,同時提供 RabbitMQ、ActiveMQ 等傳統的佇列語意,以及 Apache Kafka 基於日誌的結構。
  • Apache Pulsar 中的 Broker 是無狀態的,且儲存不是 Broker 的一部分。相反,它使用另一個名為 Bookkeeper 的 Apache 專案,將儲存層與 Broker 分離。由於這種基本設計,擴展 Apache Pulsar Broker 非常容易。
  • Apache Pulsar 使用分散式日誌,稱為 Ledger,透過 Bookkeeper 加以利用。這些 Ledger 分布在 Bookkeeper 的多個節點上。
  • 將儲存層(Ledger)與服務層(Broker)分離的另一個優點是,它們可以獨立擴展。
  • 主題分割是一項功能,而不是一項要求。只有在用例需要時才需要使用分割。
  • 內建的異地複寫機制。
  • 內建的多租戶功能。

從歷史上看,Spring 為流行的基於 JVM 的訊息系統提供了全面的支援。JMS 支援是 Spring Framework 核心的一部分。Spring 透過 Spring 生態系統中相關的對應項,為 AMQP 和 Kafka 提供了廣泛的支援 - Spring AMQPSpring for Apache Kafka。此外,在流行的 Spring 專案(例如 Spring IntegrationSpring Cloud Stream)中,還可以找到各種訊息傳遞相關的支援。由於 Apache Pulsar 作為訊息 Broker 不斷發展,因此我們開始嘗試一個新的 Spring 專案,專門使用 Java 客戶端 for Apache Pulsar 來進行開發。

從應用程式開發人員的角度來看,Apache Pulsar 提供了許多與 Apache Kafka 相同的功能,例如建立一個生產者來發布、一個消費者來消費等等。因此,在實驗性的 Spring for Apache Pulsar 中,我們根據 Spring for Apache Kafka 的基本設計原則對設計進行建模。如果您熟悉 Spring for Apache Kafka 的 API,您可能會注意到 Spring for Apache Pulsar 中有很多相似之處。考慮到這一點,以下是 Spring for Apache Pulsar 的一些當前主題和功能:

  • PulsarTemplate,用於使用單行發送方法快速發布到 Pulsar 主題。
  • 提供一個 PulsarListener 註解,用於編寫高階 Pulsar 消費者。
  • MessageListenerContainer 基礎結構,以支援 PulsarListener。
  • 同時支援基於記錄和基於批次的 PulsarListener 消費。
  • Pulsar 生產者和消費者工廠。
  • 框架自動確認訊息。
  • 各種確認模式(例如,MANUALRECORDBATCH 等)。
  • Spring Boot 自動配置元件。

此功能清單絕非詳盡無遺,但我們希望此清單是一個良好的起點。

由於我們仍處於該計畫的起步階段,因此我們非常感謝您的任何意見回饋。特別是如果您是編寫基於 Apache Pulsar 的應用程式的 Spring 使用者,我們很樂意聽到您使用此函式庫的經驗。

我們計劃很快為此框架新增更多功能。我們歡迎社群以錯誤報告、功能要求、提取請求和其他類型的回饋形式進行任何協作。

Spring for Apache Pulsar 資源

Spring for Apache Pulsar GitHub 儲存庫

參考文件

範例應用程式

取得 Spring 電子報

隨時關注 Spring 電子報

訂閱

領先一步

VMware 提供培訓和認證,以加速您的進度。

瞭解更多

取得支援

Tanzu Spring 在一個簡單的訂閱中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位檔案。

瞭解更多

即將到來的活動

查看 Spring 社群中所有即將到來的活動。

檢視全部