新增功能

自 1.1 以来 1.2 中的新增功能

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

自定义对象映射器

你可以提供自己的 Jackson,Pulsar 在生成和使用 JSON 消息时将使用该 Jackson。 有关更多详细信息,请参阅 Custom Object MapperObjectMapperspring-doc.cn

默认租户和命名空间

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

消息容器启动策略

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

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

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

  • 要注册一个或多个 PulsarContainerFactoryCustomizer<ConcurrentPulsarListenerContainerFactory<?>> bean。@PulsarListenerspring-doc.cn

  • 要注册一个或多个 PulsarContainerFactoryCustomizer<DefaultPulsarReaderContainerFactory<?>> bean。@PulsarReaderspring-doc.cn

  • 要注册一个或多个 PulsarContainerFactoryCustomizer<DefaultReactivePulsarListenerContainerFactory<>> bean。@ReactivePulsarListenerspring-doc.cn

弃用

PulsarClient#getPartitionsForTopic(java.lang.String)

版本 Pulsar 客户端弃用了 ,转而使用 .3.3.1getPartitionsForTopic(java.lang.String)getPartitionsForTopic(java.lang.String, boolean metadataAutoCreationEnabled)spring-doc.cn

PulsarTopic#构建器

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

侦听器/ReaderContainerFactory

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

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

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

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

ConcurrentPulsarListenerContainerFactoryCustomizer

其目的是自定义 Spring Boot 自动配置的消息容器工厂。 但是, Spring Boot 引入了一个通用的消息容器工厂定制器,它消除了对这个定制器的需求。ConcurrentPulsarListenerContainerFactoryCustomizerorg.springframework.boot.autoconfigure.pulsar.PulsarContainerFactoryCustomizer<T extends PulsarContainerFactory<?, ?>>spring-doc.cn

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

清除

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

  • org.springframework.pulsar.config.PulsarListenerEndpointAdapterspring-doc.cn

  • org.springframework.pulsar.reactive.config.ReactivePulsarListenerEndpointAdapterspring-doc.cn

重大更改

PulsarTopic#<init>

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

PulsarReaderFactory#createReader

API 现在会引发 unchecked 而不是 checked . 相应地替换此 API 上的任何块。PulsarReaderFactory#createReaderPulsarExceptionPulsarClientExceptiontry/catchspring-doc.cn

自 1.0 以来 1.1 中的新增功能

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

自动架构支持

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

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

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

现在,您可以标记消息类,以指定在生成/使用该类型的消息时要使用的默认主题和/或默认架构@PulsarMessagespring-doc.cn

删除选中的异常

框架提供的 API 不再抛出 checked ,而是抛出 unchecked 。PulsarClientExceptionPulsarExceptionspring-doc.cn

如果您以前只是为了安抚编译器而捕获或重新引发,并且实际上并没有处理异常,则只需删除 or 子句即可。 如果您实际上是在处理异常,则需要在 catch 子句中替换 。PulsarClientExceptioncatchthrowsPulsarClientExceptionPulsarException

测试支持

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