AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

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

评论

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

软件测试学习笔记丨Selenium配置浏览器启动状态options

测试人

软件测试

阿里巴巴店铺商品API返回值中的商品分类与筛选条件

技术冰糖葫芦

API 优先 pinduoduo API

【JVM】类加载子系统(类加载器、双亲委派)

不在线第一只蜗牛

JVM

云桌面怎么连接安装系统

青椒云云电脑

云桌面

资产代币化的崛起:揭开万亿级市场机遇的探索

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 钱包开发 代币开发

百度赵世奇:文心智能体平台加速跑通商业闭环

极客天地

京东商品评价API的获取和应用

科普小能手

API 接口 API 测试 淘宝API接口 淘宝评论API 淘宝商品API

捷途旅行者:79171台销量——方盒子SUV的全能伙伴

科技热闻

现代化可观测性平台(1)

俞凡

架构 云原生 可观测性

智能门锁展|2025年深圳国际锁具产业博览会

秋硕展览

云桌面怎么开通?支持哪些外设

青椒云云电脑

云桌面

云桌面信息系统主要功能有哪些?

青椒云云电脑

云桌面 云桌面系统

Vitalik 新文丨以太坊可能的未来:The Splurge

TechubNews

TikTok Shop多账户运营怎么防关联?

Ogcloud

海外云手机 tiktok云手机 tiktok运营 tiktok矩阵 tiktok防关联

三维度深度分析:TDengine 数据订阅 vs InfluxDB 数据订阅

TDengine

数据库 tdengine 时序数据库

以人机协同的方法轻松构建RAG模型

澳鹏Appen

大模型 LLM 大语言模型 rag 检索增强生成

2025中国(广州)国际喷码标识技术设备展会

秋硕展览

通过观测云对接企业消息中心,实现定制化告警通知

观测云

告警通知

开源Embedding模型,有效提升中文语义理解与召回

合合技术团队

开源 文档 大模型

2025北京消费电子技术博览会

AIOTE智博会

消费电子展 消费电子展会 消费电子博览会 消费电子展览会

Amphion 推出开源 TTS 模型 MaskGCT,5 秒克隆声音;神秘文生图模型「小熊猫」登顶竞技场丨 RTE 开发者日报

声网

中小企业如何选择合适的云桌面供应商

青椒云云电脑

云桌面 云桌面厂商

Mint Blockchain 正式宣布推出 Mint Forest 3.0!

NFT Research

blockchain #Web3

店铺商品尽在掌握:阿里巴巴API返回值说明

技术冰糖葫芦

API 接口 API 测试 API 协议 API 优先

TikTok运营干货:快速起号教程

Ogcloud

tiktok运营 tiktok直播专线 TikTok养号 tiktok起号 tiktok运营干货

试用期被裁是有补偿的!一定要记得领取~

王磊

云桌面解决方案厂商推荐?报价如何

青椒云云电脑

云桌面 云桌面解决方案 云桌面厂商

Solana生态亮点、代币经济学、竞争定位全览

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 钱包开发 代币开发

与Zilliz、Google等探讨中美AI应用与落地,XTransfer受邀参与分享沙龙

XTransfer技术

云桌面怎么收费

青椒云云电脑

云桌面

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