Quarkus 3.13 - OpenTelemetry 指标支持、OpenTelemetry 1.39、TLS 注册表改进等...

今天,我们发布了 Quarkus 3.13。

虽然夏天已经到来,但 Quarkus 仍在稳步前进,本次发布包含了一些令人兴奋的新功能和改进。

  • #39032 - OpenTelemetry 指标支持

  • #41521 - 将 OpenTelemetry 升级到 1.39,Instrumentation 升级到 2.5.0

  • #41418 - 添加 TLS 注册表 CLI 命令

  • #41501 - Cert-Manager 支持和 TLS 周期性重新加载

  • #41804 - 引入为 REST Client 自动启动 HTTP 代理的功能

  • #41760 - WebSockets Next:添加对 Kotlin 挂起函数(suspend functions)的支持

  • #41258 - ArC:支持拦截生产者(producers)和合成 Bean(synthetic beans)

  • #41368 - 添加新的 @WithTestResource 注解并弃用 @QuarkusTestResource

  • #41457 - 提供禁用热重载(live-reload)的配置选项

更新

要更新到 Quarkus 3.13,我们建议更新到最新版本的 Quarkus CLI 并运行

quarkus update

请注意,quarkus update 可以将您的应用程序从任何 Quarkus 版本(包括 2.x)更新到 Quarkus 3.13。

有关您需要对应用程序进行的调整的更多信息,请参阅 Quarkus 3.13 迁移指南

有什么新功能?

OpenTelemetry

几个月前,我们开始对 OpenTelemetry 扩展进行一些重大工作,您可能已经注意到我们跳过了一些 OpenTelemetry 版本。

我们很高兴地宣布,这些大量工作已在 Quarkus 3.13 中落地,并带来了以下主要变更:

  • 升级到 OpenTelemetry 1.39 和 Instrumentation 2.5.0

  • 引入 OpenTelemetry 指标支持

文档已更新

TLS 注册表

在 Quarkus 3.12 中,我们引入了 TLS 注册表来简化 TLS 配置和证书的管理。

本次发布带来了一些额外的改进:

  • 您可以自动重新加载证书

  • 您可以使用 Kubernetes secrets 或 Cert-Manager 来存储您的证书

这些新功能已在 TLS 注册表指南中进行了文档说明。

我们向 CLI 添加了几个 quarkus tls 命令来帮助使用此新功能。

REST Client 的 HTTP 代理

在使用 REST Client 时,您可能需要更仔细地查看发送到服务器的请求。尤其是在处理 HTTPS 连接时,您通常会最终使用一个直通代理(pass-through proxy)。

Quarkus 3.13 带来了一项新功能,可在开发模式下启动一个直通代理。此代理可以用作 Wireshark 的目标,以获取客户端发送的请求内容。

通过将 quarkus.rest-client."client name".enable-local-proxy 设置为 true 即可轻松启用。启动 Quarkus 时,日志消息将指示代理的端口。

此功能仅在 Quarkus REST Client 中可用(RESTEasy 客户端不支持此功能)。

WebSockets Next

WebSockets Next,我们的下一代 WebSockets 扩展,在每个版本中都在不断改进。

本次发布中,对我们的 Kotlin 用户的一个主要改进是支持 Kotlin 挂起函数。

ArC - 支持拦截生产者和合成 Bean

ArC 是 Quarkus 的 CDI 实现。它是 Quarkus 的核心,也是 Quarkus 架构的关键部分,并定期进行改进以支持更多用例或简化现有用例。

从 Quarkus 3.13 开始,可以在生产者和合成 Bean 上使用拦截器,而这通常是扩展所使用的。

@WithTestResource 取代 @QuarkusTestResource

WithTestResource 取代了现已弃用的 QuarkusTestResource

唯一的改变是注解的默认行为:默认情况下,它会将资源限制在被注解的类上。您可以通过将 restrictToAnnotatedClass = false 添加到您的 @WithTestResource 注解来轻松恢复到之前的行为。

quarkus update 将会为您处理此更改,并确保其保持当前的运行方式。

禁用热重载

在某些情况下,人们希望使用开发模式(dev mode)的开发服务(Dev Services)功能,但又希望禁用热重载。

现在,您可以通过将 quarkus.live-reload.enabled 配置属性设置为 false 来轻松实现。

Quarkus CXF

Quarkus CXF 3.13 已发布,并可在 Quarkus Platform 3.13 中获得。请查看 Quarkus CXF 3.13.0Quarkus CXF 3.13.1 的发行说明,以获取有关此版本新功能的更多信息。

完整更新日志

您可以在 GitHub 上获取 3.13.0.CR13.13.0 的完整变更日志。

贡献者

Quarkus 社区正在不断壮大,目前已有 973 名贡献者。非常感谢每一位贡献者。

特别感谢 3.13 版本中的贡献者:Ales Justin、Alex Martel、Alexey Loubyansky、Andre F de Miranda、Andy Damevin、Auri Munoz、Bruno Alves、Bruno Baptista、chrischiedo、Christian Navolskyi、Christian Schmidt、Clement Escoffier、Cristiano Nicolai、Daniel Santos、David M. Lloyd、Dmitry Kryukov、Eric Deandrea、Foivos Zakkak、Fouad Almalki、Galder Zamarreño、George Gastaldi、Georgios Andrianakis、Giancarlo Calderón Cárdenas、Gonçalo Montalvão Marques、Guillaume Smet、Gunther C. Wenda、Gwenneg Lepage、Harald Albers、harlequin516、Holly Cummins、Ioannis Canellos、Jakub Jedlicka、James Cobb、James Netherton、Jan Hendriks、Jan Martiska、Jerome Prinet、João Daniel Simões、Juan Jose Garcia、Julien Ponge、Katia Aresti、Ladislav Thon、Luke Morfill、Maciej Lisowski、Marc Nuri、Marco Bungart、Marco Sappé Griot、Marek Skacelik、mariofusco、Mark Dijkstra、marko-bekhta、Martin Bartoš、Martin Kouba、Matej Novotny、Matheus Cruz、Matteo Franci a.k.a. Fugerit、Max Rydahl Andersen、melloware、Michael Edgar、Michael Hamburger、Michal Karm Babacek、Michal Vavřík、Michel Käser、mkrueger92、Nikolas Schmidt-Voigt、Ozan Gunalp、Peter Palaga、Phillip Krüger、renanmachad、Roberto Balarezo、Roberto Cortez、Rolfe Dlugy-Hegwer、Ryan Dens、Sanne Grinovero、Sebastian Schuster、Sergey Beryozkin、Shivansh、Simon Bradette、Stéphane Épardaud、Thomas Canava、vsevel、xstefank、YeonguChoe 和 Yoann Rodière。

加入我们

我们非常重视您的反馈,所以请报告错误,提出改进建议…… 让我们一起构建伟大的东西!

如果您是 Quarkus 用户或只是好奇,请不要害羞,加入我们热情的社区