速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

Spring for Apache Kafka 3.0 和 Spring for RabbitMQ 3.0 发布

  • 2022-12-26
    北京
  • 本文字数:1765 字

    阅读完需:约 6 分钟

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应用程序,并使用Micrometer指标门面来观察计时器和实现跟踪。现在,两个项目都在 pom.xml 文件中提供了BOM,方便进行依赖项管理。


Micrometer 用于增强 JVM 代码,没有供应商锁定,可以观察计时器和跟踪KafkaTemplateRabbitTemplate及监听器容器。Micrometer 类似于SLF4J(一种日志门面),只是它是用在指标方面。


现在,Spring AOT原生提示可用来为使用 Spring for Apache Kafka 或 Spring for RabbitMQ 构建的 Spring 应用程序创建原生镜像,示例可在 GitHub 上的spring-aot-smoke-tests项目中找到。spring-kafka-test 模块中的EmbeddedKafkaBroker类在原生镜像中不受支持。


Spring for Apache Kafka 3.0 要求Kafka客户端是 3.3.1 版本,如果要使用事务,要求最低 Kafka broker(即 Kafka 服务器)是 2.5 版本。


现在可以跨多个测试类使用一个单独的全局 EmbeddedKafkaBroker,只需要像下面这样替换服务器地址:


public final class EmbeddedKafkaContainer {    private static EmbeddedKafkaBroker embeddedKafkaBroker =         new EmbeddedKafkaBroker(1, false)            .brokerListProperty("spring.kafka.bootstrap-servers");    private static boolean started;
public static EmbeddedKafkaBroker getEmbeddedKafkaBroker() { if (!started) { try { embeddedKafkaBroker.afterPropertiesSet(); } catch (Exception exception) { throw new KafkaException("Error starting EmbeddedKafkaBroker", exception); } started = true; } return embeddedKafkaBroker; }
private EmbeddedKafkaContainer() { super(); }}
复制代码


在配置了 EmbeddedKafkaBroker 之后,它就可以被用在每一个测试类中:


static {    EmbeddedKafkaHolder.getEmbeddedKafkaBroker()        .addTopics("students", "teacher");}
private static final EmbeddedKafkaBroker broker = EmbeddedKafkaContainer.getEmbeddedKafkaBroker();
复制代码


对于前面的示例,broker 在完成测试后将会继续运行,这可能会导致潜在的问题。例如,在使用 Gradle 守护进程时,EmbeddedKafkaBroker 的 destroy()方法应该在所有测试执行完毕之后被调用。


GlobalEmbeddedKafkaTestExecutionListener为测试计划启动一个全局的 EmbeddedKafkaBroker,并在测试计划被执行时停止它。监听器在默认情况下是禁用的,可以在 1.8 或更新版本的 JUnit Platform 上通过 spring.kafka.global.embedded.enabled 属性来启用。


用于非阻塞重试的@RetryableTopic注解不再是实验性的。在这个版本中,这个注解得到了进一步的改进,现在可以作为自定义注解的元注解。现在可以在同一个应用程序上下文的同一个主题上配置多个 @RetryableTopic 监听器。容器现在可以发布ConsumerRetryAuthEventConsumerRetryAuthSuccessfulEvent事件。


KafkaTemplateReplyingKafkaTemplate类中定义的各种 send 方法现在将返回一个CompletableFuture,而不是已弃用的ListenableFuture


Spring for RabbitMQ 现在支持单个活跃消费者的超级流。超级流是通过参数 x-super-stream: true 将几个流队列绑定到一个 exchange 来创建的。例如,我们可以使用SuperStream类型的 bean 来创建 test.exchange 和两个队列或分区:


@BeanSuperStream superStream() {  return new SuperStream("test.exchange", 2);}
复制代码


使用@RabbitListener注解的监听器方法现在可以消费CollectionList类型的消息批次


AsyncRabbitTemplateRabbitStreamTemplateRabbitStreamOperations的 send 方法现在返回CompletableFuture,而不是已弃用的ListenableFuture


Spring for RabbitMQ 不再支持远程方法调用(RMI)。


更多信息可以在KafkaRabbitMQ的 What's New 页面中找到。


原文链接

https://www.infoq.com/news/2022/12/spring-apache-kafka-rabbitmq-3/


相关阅读:

Spring Boot 3和Spring Framework 6使用Java 17和Jakarta EE 9,并支持基于GraalVM的原生Java

Spring Modulith使用模块和事件组织Spring Boot 3应用

InfoQ 2022 年趋势报告:Java 篇

2022-12-26 09:319150

评论

发布
暂无评论
发现更多内容

苹果电脑防火墙软件 Radio Silence for mac v3.3 最新永久密钥

Rose

功能强大的矢量绘图软件 EazyDraw for Mac v11.8.2中文版

Rose

快速编写代码软件TeaCode for Mac

Mac相关知识分享

代码软件

ps替代品:苹果图像处理软件Acorn for mac注册版

Rose

实用的快速编写代码软件 TeaCode for Mac v1.1.3激活版

Rose

vivo 全链路多版本开发测试环境落地实践

vivo互联网技术

测试环境 流量染色

联想正式在印度生产AI服务器!致力于在印度开发世界“尖端”技术真的能实现吗?|AI日报

可信AI进展

LeetCode:240. 搜索二维矩阵 II,二分查找,详细注释

Lee Chen

装修项目管理必备的8款软件,轻松掌控进度

爱吃小舅的鱼

装修工程项目管理

项目管理者必备:8款高效进度管理软件推荐

爱吃小舅的鱼

工程项目管理

探索淘宝API:解锁关键词搜索商品列表的无限可能

代码忍者

API 接口 pinduoduo API

百度智能云x️石家庄交管局,大模型打造全时在线数字交警

百度Geek说

OpenAI o1开辟“慢思考”,国产AI早已集结在CoE“组团”先出发

脑极体

AI

假期结束秋招喜来,瞧瞧节后字节跳动的面经

王中阳Go

面经 go基础 Go面试宝典 Go 面试题 面经 后端 大厂

Axure RP 10中文授权版永久使用 mac/win

Rose

鸿蒙应用生态构建的核心目标

芯盾时代

鸿蒙

FotoMagico for Mac(专业幻灯片制作软件)v6.7.2激活版

Rose

Acorn 7 for Mac(mac图像处理软件)激活版

Mac相关知识分享

Path Finder for Mac(强大的文件管理工具) v2176中文激活版

Rose

Caffeinated for Mac(系统防睡眠工具) v2.0.7激活版

Rose

苹果电脑数据库管理工具 Valentina Studio Pro for Mac v14.5激活版

Rose

跨平台 SSH 客户端Termius for mac

Mac相关知识分享

如何选择工程项目成本管理软件?8款工具解析

爱吃小舅的鱼

工程项目管理

JDK23如约而至,数十种新玩法,你期待哪一种?

江南一点雨

【Abyss】Android平台应用级系统调用拦截框架

iofomo

android 安全 拦截器

火山引擎AI创新巡展深圳站定档9月24日!豆包大模型将全新发布视频生成模型

新消费日报

搭建 CNode 技术社区智能体

Botnow

node.js 开源 AI AI 智能体

数据库管理工具Valentina Studio Pro for Mac

Mac相关知识分享

Go 错误处理指北:pkg/errors 源码解读

江湖十年

后端 错误 错误处理 Go 面试题 面经 后端 大厂

Termius (终端模拟器/ssh/sftp客户端软件)

Rose

Qbserve for Mac 提高工作效率 v1.9激活版

Rose

Spring for Apache Kafka 3.0和Spring for RabbitMQ 3.0发布_语言 & 开发_Johan Janssen_InfoQ精选文章