Apache Kafka 3.0 和 RabbitMQ 3.0 的 Spring 框架发布

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。新版本的主要更新包括:

  1. 支持 GraalVM 原生应用:这两个项目现在支持创建 GraalVM 原生镜像应用,并通过 Micrometer 进行计时和追踪的观测。
  2. 依赖管理:项目提供了 pom.xml 文件中的 BOM(Bill of Materials)来帮助管理依赖。
  3. Micrometer 集成:Micrometer 用于对 JVM 代码进行观测,支持 KafkaTemplateRabbitTemplate 和监听器容器的计时和追踪功能。

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 更新

  1. Kafka 客户端要求:Spring for Apache Kafka 3.0 需要 Kafka 客户端版本 3.3.1,并且在事务使用时,Kafka 服务器的最小版本要求为 2.5。
  2. 全局 EmbeddedKafkaBroker:现在可以在多个测试类中使用单个全局 EmbeddedKafkaBroker,并且在测试完成后需要调用 destroy() 方法来销毁 broker。
  3. @RetryableTopic 注解:该注解不再处于实验阶段,并在此版本中进一步改进,可以作为元注解使用。多个 @RetryableTopic 监听器可以在同一个应用上下文中的同一个主题上进行配置。
  4. KafkaTemplateReplyingKafkaTemplate:这些类中的各种发送方法现在返回 CompletableFuture,而不是已弃用的 ListenableFuture

Spring for RabbitMQ 3.0 更新

  1. 超级流支持:Spring for RabbitMQ 现在支持带有单一活动消费者的超级流。超级流通过将多个流队列绑定到带有 x-super-stream: true 参数的交换器来创建。
  2. 批量消息消费:使用 @RabbitListener 注解的监听器方法现在可以消费类型为 CollectionList 的消息批次。
  3. AsyncRabbitTemplateRabbitStreamTemplate:这些类中的发送方法现在返回 CompletableFuture,而不是已弃用的 ListenableFuture
  4. RMI 支持移除:Spring for RabbitMQ 移除了对远程方法调用(RMI)的支持。

更多信息

关于 Kafka 和 RabbitMQ 的更多更新信息,可以参考各自的 "What's New" 页面:KafkaRabbitMQ

阅读 25
0 条评论