新增功能

自 1.1 以来 1.2 中的新增功能

本节介绍从版本 1.1 到版本 1.2 所做的更改。spring-doc.cadn.net.cn

自定义对象映射器

您可以提供自己的 JacksonObjectMapperPulsar 将在生成和使用 JSON 消息时使用。 有关更多详细信息,请参阅 Custom Object Mapperspring-doc.cadn.net.cn

默认租户和命名空间

您可以指定在针对非完全限定主题 URL 生成或使用消息时要使用的默认租户和/或命名空间。 有关更多详细信息,请参阅 默认租户/命名空间spring-doc.cadn.net.cn

消息容器启动策略

您现在可以将消息侦听器容器启动失败策略配置为stop,continueretry. 有关更多详细信息,请参阅受支持的容器之一 @PulsarListener@PulsarReader@ReactivePulsarListener 的相应部分spring-doc.cadn.net.cn

消息容器工厂定制器 (Spring Boot)

Spring Boot 引入了一个通用的消息容器工厂定制器org.springframework.boot.autoconfigure.pulsar.PulsarContainerFactoryCustomizer<T extends PulsarContainerFactory<?, ?>>这可用于进一步配置一个或多个支持以下侦听器注释的自动配置的容器工厂:spring-doc.cadn.net.cn

  • @PulsarListener注册一个或多个 PulsarContainerFactoryCustomizer<ConcurrentPulsarListenerContainerFactory<?>> bean。spring-doc.cadn.net.cn

  • @PulsarReader注册一个或多个 PulsarContainerFactoryCustomizer<DefaultPulsarReaderContainerFactory<?>> bean。spring-doc.cadn.net.cn

  • @ReactivePulsarListener注册一个或多个 PulsarContainerFactoryCustomizer<DefaultReactivePulsarListenerContainerFactory<?>> bean。spring-doc.cadn.net.cn

弃用

PulsarClient#getPartitionsForTopic(java.lang.String)

版本3.3.1的 Pulsar 客户端弃用了getPartitionsForTopic(java.lang.String)赞成getPartitionsForTopic(java.lang.String, boolean metadataAutoCreationEnabled).spring-doc.cadn.net.cn

PulsarTopic#构建器

使用 Spring Boot 时,PulsarTopicBuilder现在是已注册的 Bean,它配置了 domain、tenant 和 namespace 的默认值。 因此,如果您使用的是 Spring Boot,则只需在需要时注入构建器即可。 否则,请使用PulsarTopicBuilder构造函数。spring-doc.cadn.net.cn

侦听器/ReaderContainerFactory

PulsarContainerFactory引入通用接口是为了弥合侦听器和读取器容器工厂之间的差距。 作为其中的一部分,以下 API 已被弃用、复制和重命名:spring-doc.cadn.net.cn

  • ListenerContainerFactory#createListenerContainer替换为ListenerContainerFactory#createRegisteredContainerspring-doc.cadn.net.cn

  • ReaderContainerFactory#createReaderContainer(E endpoint)替换为ReaderContainerFactory#createRegisteredContainerspring-doc.cadn.net.cn

  • ReaderContainerFactory#createReaderContainer(String…​ topics)替换为ReaderContainerFactory#createContainerspring-doc.cadn.net.cn

ConcurrentPulsarListenerContainerFactoryCustomizer

目的ConcurrentPulsarListenerContainerFactoryCustomizer是自定义 Spring Boot 自动配置的消息容器工厂。 但是,Spring Boot 引入了一个通用的消息容器工厂定制器org.springframework.boot.autoconfigure.pulsar.PulsarContainerFactoryCustomizer<T extends PulsarContainerFactory<?, ?>>这样就不需要这个定制器了。spring-doc.cadn.net.cn

替换 的所有实例ConcurrentPulsarListenerContainerFactoryCustomizerorg.springframework.boot.autoconfigure.pulsar.PulsarContainerFactoryCustomizer<ConcurrentPulsarListenerContainerFactoryCustomizer<?>>.spring-doc.cadn.net.cn

清除

以下以前弃用的侦听器终端节点适配器已被删除,以支持侦听器终端节点接口中的默认方法:spring-doc.cadn.net.cn

重大更改

PulsarTopic#<init>

PulsarTopicconstructor 现在需要一个完全限定的主题名称 (domain://tenant/namespace/name). 如果要调用构造函数,则需要确保传入的主题是完全限定的。 更好的选择是使用PulsarTopicBuilder因为它不需要完全限定名称,并且会为指定名称中缺少的组件添加默认值。spring-doc.cadn.net.cn

PulsarReaderFactory#createReader

PulsarReaderFactory#createReaderAPI 现在会抛出一个 uncheckedPulsarException而不是选中的PulsarClientException. 替换任何try/catch块。spring-doc.cadn.net.cn

自 1.0 以来 1.1 中的新增功能

本节介绍从版本 1.0 到版本 1.1 所做的更改。spring-doc.cadn.net.cn

自动架构支持

如果无法提前知道某个 Pulsar 主题的 schema,你可以使用 AUTO Schemas 向 broker 生成/消费泛型记录。 有关更多详细信息,请参阅使用 AUTO_SCHEMA 生产和使用 AUTO_SCHEMAspring-doc.cadn.net.cn

虽然上述链接侧重于PulsarTemplate@PulsarListener,此功能在ReactivePulsarTemplate,@ReactivePulsarListener@PulsarReader. 每个选项的详细信息可以在本参考指南的相应部分中找到。

通过消息注释的默认主题/架构

您现在可以使用@PulsarMessage以指定在生成/使用该类型的消息时要使用的 default topic 和/或 default schemaspring-doc.cadn.net.cn

删除选中的异常

框架提供的 API 不再抛出 checkedPulsarClientException,而是未选中的PulsarException.spring-doc.cadn.net.cn

如果您之前正在接球或重新抛出PulsarClientException只是为了安抚编译器而不是实际处理异常,你可以简单地删除你的catchthrows第。 如果您实际上是在处理异常,则需要将PulsarClientExceptionPulsarException在 catch 子句中。

测试支持

spring-pulsar-test模块现在可用于帮助测试 Spring for Apache Pulsar 应用程序。 有关更多详细信息,请参阅测试应用程序spring-doc.cadn.net.cn