VMware 发布 Spring for Apache Kafka 3.0 和 Spring for RabbitMQ 3.0
VMware 发布了 Spring for Apache Kafka 3.0 和 Spring for RabbitMQ 3.0 版本,这两个版本要求使用 Java 17 和 Spring Framework 6.0。新版本的主要更新包括:
- 支持 GraalVM 原生应用:这两个项目现在支持创建 GraalVM 原生镜像应用,并通过 Micrometer 进行计时和追踪的观测。
- 依赖管理:项目提供了
pom.xml文件中的 BOM(Bill of Materials)来帮助管理依赖。 - Micrometer 集成:Micrometer 用于对 JVM 代码进行观测,支持
KafkaTemplate、RabbitTemplate和监听器容器的计时和追踪功能。
Spring AOT 原生提示支持
Spring AOT 原生提示现在可用于为 Spring for Apache Kafka 和 Spring for RabbitMQ 的应用程序创建原生镜像。GitHub 上的 spring-aot-smoke-tests 项目提供了相关示例。需要注意的是,spring-kafka-test 模块中的 EmbeddedKafkaBroker 类在原生镜像中不受支持。
Spring for Apache Kafka 3.0 更新
- Kafka 客户端要求:Spring for Apache Kafka 3.0 需要 Kafka 客户端版本 3.3.1,并且在事务使用时,Kafka 服务器的最小版本要求为 2.5。
- 全局
EmbeddedKafkaBroker:现在可以在多个测试类中使用单个全局EmbeddedKafkaBroker,并且在测试完成后需要调用destroy()方法来销毁 broker。 @RetryableTopic注解:该注解不再处于实验阶段,并在此版本中进一步改进,可以作为元注解使用。多个@RetryableTopic监听器可以在同一个应用上下文中的同一个主题上进行配置。KafkaTemplate和ReplyingKafkaTemplate:这些类中的各种发送方法现在返回CompletableFuture,而不是已弃用的ListenableFuture。
Spring for RabbitMQ 3.0 更新
- 超级流支持:Spring for RabbitMQ 现在支持带有单一活动消费者的超级流。超级流通过将多个流队列绑定到带有
x-super-stream: true参数的交换器来创建。 - 批量消息消费:使用
@RabbitListener注解的监听器方法现在可以消费类型为Collection或List的消息批次。 AsyncRabbitTemplate和RabbitStreamTemplate:这些类中的发送方法现在返回CompletableFuture,而不是已弃用的ListenableFuture。- RMI 支持移除:Spring for RabbitMQ 移除了对远程方法调用(RMI)的支持。
更多信息
关于 Kafka 和 RabbitMQ 的更多更新信息,可以参考各自的 "What's New" 页面:Kafka 和 RabbitMQ。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。