推出对 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 使用分布式日志,称为账本 (ledgers),通过 Bookkeeper 实现。这些账本分布在 Bookkeeper 的多个节点上。
  • 将存储层(账本)与服务层(代理)分离的另一个好处是它们可以独立扩展。
  • 主题分区是一项功能,而非必需。只有当用例要求时,才需要使用分区。
  • 内置的地理复制机制。
  • 内置的多租户功能。

历史上,Spring 为流行的基于 JVM 的消息传递系统提供了全面的支持。JMS 支持是核心 Spring Framework 的一部分。Spring 通过其在 Spring 生态系统中的相应组件 Spring AMQP 和 Spring for Apache Kafka,为 AMQP 和 Kafka 提供了广泛的支持。此外,在流行的 Spring 项目中,如 Spring Integration 和 Spring Cloud Stream,也提供了各种与消息传递相关的支持。随着 Apache Pulsar 作为消息传递代理的兴起,我们开始通过使用 Apache Pulsar 的 Java 客户端,尝试一个新的专门针对它的 Spring 项目。

从应用程序开发者的角度来看,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 社区所有即将举行的活动。

查看所有