什么是新的?

1.2 自 1.1 以来的新增功能

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

自定义对象映射器

您可以提供自己的JacksonObjectMapperPulsar 在生成和使用 JSON 消息时将使用。有关更多详细信息,请参阅自定义对象映射器spring-doc.cadn.net.cn

默认租户和命名空间

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

消息容器启动策略

现在,您可以将消息侦听器容器启动失败策略配置为stop,continueretry. 有关更多详细信息,请参阅受支持的容器之一的相应部分@PulsarListener@PulsarReader@ReactivePulsarListenerspring-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,它配置了域、租户和命名空间的默认值。因此,如果您使用的是 Spring Boot,则只需在需要的地方注入构建器即可。否则,请使用PulsarTopicBuilder构造函数直接。spring-doc.cadn.net.cn

侦听器/读取器容器工厂

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

ConcurrentPulsarListenerContainerFactory定制器

目的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>

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

PulsarReaderFactory#createReader

PulsarReaderFactory#createReaderAPI 现在抛出未选中的PulsarException而不是检查PulsarClientException. 将任何try/catch块。spring-doc.cadn.net.cn

1.1 自 1.0 以来的新增功能

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

自动架构支持

如果没有机会提前知道 Pulsar 主题的模式,您可以使用 AUTO Schemas 生成/使用与代理之间的通用记录。 有关更多详细信息,请参阅使用 AUTO_SCHEMA 生产使用 AUTO_SCHEMA 使用spring-doc.cadn.net.cn

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

通过消息注释的默认主题/模式

您现在可以使用@PulsarMessage指定在生成/使用该类型的消息时要使用的默认主题和/或默认模式spring-doc.cadn.net.cn

删除已选中的异常

框架提供的 API 不再抛出已检查的PulsarClientException,而是不受检查的PulsarException.spring-doc.cadn.net.cn

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

测试支持

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