写点什么

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:3110082

评论

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

从工程师视角看 “Multi-Agent as a Service (MAaaS)”

Baihai IDP

AI LLMs 企业号 8 月 PK 榜 Baihai IDP AI Agents

Plugin Alliance Bettermaker Passive Equalizer(Bettermaker无源均衡器)

Rose

Arturia V Collection X for mac(经典合成器和键盘合集) v27.08.2024最新版

Rose

合成器 Arturia V Collection X

Output Thermal for Mac 操作简便的动态多级失真插件

Rose

从零开始带你玩转 AI 变现公开课

测吧(北京)科技有限公司

测试

After Effects插件:AutoCircularMotion(图层圆周运动工具AE脚本)

Rose

After Effects插件 图层圆周运动工具 AutoCircularMotion

VMware Cloud Foundation 9 发布 - 领先的多云平台

sysin

云计算 vSphere vmware esxi vcf

深入解析京东商品详情API返回值:从零到一的全面指南

代码忍者

API 测试 API 策略

ps天文景观插件 Astro Panel Pro for Mac v6.0.0苹果版

Rose

ps天文景观插件 Astro Panel Pro Photoshop插件下载安装

A股迎来中报季,合合信息文档解析技术辅助大模型深度解读财报

合合技术团队

金融 PDF 科技

fcpx音量大小调节插件 CrumplePop Levelmatic

Rose

fcpx音量大小调节插件 CrumplePop Levelmatic

15款中国风大气水墨笔触PS笔刷

Rose

从零开始带你玩转 AI 变现公开课

测试人

人工智能 软件测试

分享 | 某头部城商行如何提升反欺诈能力

芯盾时代

金融 手机银行 反欺诈

探索最佳无代码低代码工具:加速 Web 应用开发

NocoBase

低代码 无代码 Web应用开发

华为亮相KubeCon China 2024 ,引领全球智能化新浪潮

新消费日报

Skew for mac 快速倾斜形状sketch工具+Skew使用方法

Rose

sketch工具 Skew插件下载 快速倾斜形状工具插件

StarRocks 存算分离成本优化最佳实践

Ding_Kai

数据库 StarRocks

FCPX插件motionVFX mLowers动态下标题

Rose

fcpx插件 fcpx标题模板 motionVFX mLowers 动态下标题

人工智能 | 清华大学ChatGLM大模型

测吧(北京)科技有限公司

测试

mac游戏:魔兽争霸3冰封王座Warcraft III for mac 版

你的猪会飞吗

魔兽争霸3 冰封王座 Mac游戏下载

文献解读-《Beta-amylase and phosphatidic acid involved in recalcitrant seed germination of Chinese chestnut》

INSVAST

农业 基因数据分析 生信服务

中标智能制造!亚信科技+用友网络,助重庆大型制造企业重塑生产管理

亚信AntDB数据库

AntDB

聊聊测试数据的生成方法

老张

软件测试 质量保障 测试数据

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