Quarkus 3.3.0 发布 - OpenTelemetry 改进,Reactive Messaging Pulsar 扩展

我们很高兴地宣布 Quarkus 3.3.0 的发布。

您在此版本中注意到的第一件事是我们删除了 .Final 后缀。此后缀是为了确保最终版本与 alpha、beta 和候选版本相比能够正确排序,当时 Java 工具在排序版本时存在问题。这些日子早已过去,因此是时候删除该后缀并简化我们的版本方案了。

我们目前在社区中维护 3 个版本流

  • 3.3:这是最新最强大的版本,它引入了新功能

  • 3.2:这是我们当前的 LTS 版本

  • 2.16:我们计划发布更多版本,但建议您在 10 月底前迁移您的应用程序,因为此日期之后我们不太可能发布新的 2.16 版本

主要变化如下:

  • OpenTelemetry 扩展的许多改进

  • Reactive Messaging Pulsar 扩展

  • 在 REST Client Reactive Jackson 中自定义 ObjectMapper 的能力

  • Micrometer 引入了一种完全自定义 MeterRegistry 的方法

  • 删除 elasticsearch-high-level-rest-client 扩展并将 Dev Services 和测试升级到 Elasticsearch 8

  • 各种安全相关的增强功能

更新

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

quarkus update

要从 3.2 迁移,请参考 我们的迁移指南

如果您尚未开始使用 3.x,请参阅 3.0 发布公告了解所有详细信息。您还可以参阅 这篇博客文章了解更多详细信息。更新到 3.0 后,请同时查看 3.13.2 的迁移指南。

有什么新功能?

OpenTelemetry

此版本为 OpenTelemetry 扩展带来了广泛的改进

  • 现在支持 OTel 1.28。

  • 默认的 OTel exporter 已被 Vert.x 之上的 Quarkus 实现取代。这使我们不必依赖 OkHttp 库。exporter 继续与 CDI 自动绑定,因此 quarkus.otel.traces.exporter 属性默认为 cdi

  • 新的 Quarkus Vert.x exporter 现在支持 grpc (默认) 和 http/protobuf。请使用此属性更改协议:quarkus.otel.exporter.otlp.traces.protocol

  • Quarkus OTel exporter 现在将支持 TLS。

  • 当设置 quarkus.tls.trust-all=true 时,它还将禁用 Quarkus OTel exporter 上的所有 SSL 验证。

  • 我们添加了一种自定义传播头的方式。这可以通过实现 TextMapPropagatorCustomizer 接口来实现。例如,这可用于限制 OpenTelemetry 跟踪头的传播,并防止敏感数据被发送到第三方系统

  • 通过设置 quarkus.otel.traces.eusp.enabled=true;您可以为每个 span 添加与用户相关的信息。如果可用,用户的 ID 和角色将添加到 span 属性中。

  • 我们现在正确报告 http.route 属性。

  • Swagger UI 端点将不再被跟踪。

  • 失败请求的 span 现在将包含堆栈跟踪。

  • OTel 实例化已得到改进,以防止启动时的竞争条件。

Reactive Messaging

Quarkus 已添加 Pulsar 扩展用于 Reactive Messaging。并且它附带了 Dev Services

请查看 专用指南

安全性

  • 我们添加了对 OIDC 授权码流 nonce 的支持。

  • 我们为许多常见的 OIDC 提供商提供了简便的配置,并添加了对新提供商 Twitch 的支持。

  • OIDC JavaRequest 检查可以自定义。

  • OIDC @Tenant 注解用于解析租户。

  • SecurityIdentity` 增强期间支持 OIDC 令牌传播。

Elasticsearch

已删除已弃用的 quarkus-elasticsearch-high-level-rest-client 扩展。

它依赖于 Elastic 已弃用并且在最近版本中不再开源的旧高层客户端(我们仍在使用一个旧版本)。

此扩展已被 Elasticsearch Java Client 扩展取代。它不是即插即用式替换,因此迁移将需要一些工作。

REST Client Reactive

现在可以在使用 REST Client Reactive Jackson 时自定义 ObjectMapper

Micrometer

现在可以自定义 MeterRegistry,如 我们的文档中所述

添加了 Netty 指标。

GraalVM

我们现在一致依赖 org.graalvm.sdk:graal-sdk artifact(我们之前使用的是非 API svm artifact)。

此 artifact 的依赖项在 Quarkus 中标记为 provided,因此它们不是传递性的:如果您想在应用程序中包含 GraalVM 替换项,请从此开始自己添加它作为依赖项。

它是 BOM 的一部分,因此您无需定义版本。

完整更新日志

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

贡献者

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

特别是对于 3.3 版本,感谢 Ales Justin、Alexey Loubyansky、A.Moscatelli、Andrea Peruffo、Andy Damevin、Anthony T. Lannutti、Auri Munoz、biswassri、Bruno Baptista、Chris Laprun、Clement Escoffier、Daniel Cunha、Daryl Koh、Dave Maughan、Davide D’Alto、Emile de Weerd、Erin Schnabel、Falko Modler、Foivos Zakkak、Fouad Almalki、franz1981、Galder Zamarreño、George Gastaldi、Georgios Andrianakis、Giancarlo Calderón Cárdenas、Guillaume Smet、Holly Cummins、humberto、imperatorx、Ioannis Canellos、James Netherton、Jan Martiska、Jerome Prinet、Joan Ruget、Jose Carvajal、Josef Smrcka、Julien Ponge、Katia Aresti、Kenneth Bøgedal、Kevin Dubois、Kevin Howell、Kevin Wooten、kpapakyriakos、Ladislav Thon、Loïc Mathieu、Manyanda Chitimbo、Marek Skacelik、Marko Bekhta、Martin Kouba、Martin Ocenas、Martin Panzer、Matej Novotny、Max Rydahl Andersen、melloware、Michael Edgar、Michael Musgrove、Michal Maléř、Michal Vavřík、Michelle Purcell、Nicolas Filotto、Ozan Gunalp、Paul Carter-Brown、Paulo Casaes、Pedro Igor、Peter Fortuin、Peter Palaga、Phillip Krüger、rjtmahinay、Robert Kühne、Roberto Cortez、Rolfe Dlugy-Hegwer、Romain Pelisse、Rostislav Svoboda、Samet Karakaya、Sanne Grinovero、Sebastian Schuster、Sergey Beryozkin、Severin Gehwolf、Siva_M7、suchwerk、The-Huginn、Thomas Segismont、Vincent Sevel、xstefank、ygyg70、Yoann Rodière、Yoshikazu Nojima、yyang。

加入我们

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

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