Quarkus 1.13 发布 - DevServices、Kubernetes 服务绑定、OpenTelemetry

今天,我们宣布 Quarkus 1.13.0.Final 可用。

此版本带来了一些新功能

  • DevServices 简化了容器测试。

  • 现在通过两个新的扩展支持 OpenTelemetry。

  • Kubernetes 服务绑定简化了在 Kubernetes 上的部署。

  • 我们引入了一个新的基于 RESTEasy Reactive 的 MicroProfile REST 客户端。

  • quarkus-jacoco 可以生成您的测试覆盖率报告。

像往常一样,它包含了大量的错误修复和小的改进。

迁移指南

渴望迁移您现有的应用程序吗? 这是我们的 1.13 迁移指南

有什么新功能?

使用 DevServices 实现零配置设置

使用 Quarkus,我们的主要目标是让开发人员的生活更轻松,并带回开发人员的乐趣。在 1.13 中,我们向(不太秘密的)Quarkus 配方中添加了一个新元素:DevServices。

启动开发模式(实时重新加载)时,我们现在能够自动启动容器以进行测试,您甚至不需要配置任何内容:容器会自动连接到 Quarkus 开发模式配置。

例如,如果您正在开发基于 PostgreSQL 的应用程序,那么只要您在您的 pom 中拥有 PostgreSQL JDBC 扩展,就会启动一个容器以使用 Testcontainers 进行测试。

您只需要使用 %prod. 前缀定义您的生产配置。 开发模式的配置已处理。

您将在数据源指南中找到有关此新功能的全部详细信息。

OpenTelemetry 扩展

来自 Cloud Native Computing FoundationOpenTelemetry 项目是一项合并 OpenTracing 和 OpenCensus 项目的倡议,旨在为所有遥测提供一个通用项目。 追踪是 OpenTelemetry 的第一个部分,已在上个月 GA,指标和日志记录仍在开发中。

Quarkus 1.13 引入了一个新的 OpenTelemetry 扩展,名为 quarkus-opentelemetry,它提供了跟踪请求的能力。 要将跟踪导出到 Jaeger 收集器,请使用依赖于 quarkus-opentelemetryquarkus-opentelemetry-exporter-jaeger 扩展。 在此初始版本中,跟踪在 JAX-RS 资源方法、REST 客户端和 Reactive Messaging with Kafka 中可用。 在未来的版本中将会与其他扩展进一步集成,以及指南和快速入门。

Kubernetes 服务绑定

Quarkus 支持通过 Kubernetes 服务绑定规范将服务绑定到应用程序。 具体来说,Quarkus 实现了规范的 应用程序投影部分,从而允许在适当配置的 Kubernetes 集群中运行的应用程序使用服务(例如数据库或代理),而无需用户配置。

目前,以下 Quarkus 扩展支持此功能

  • quarkus-jdbc-mariadb

  • quarkus-jdbc-mssql

  • quarkus-jdbc-mysql

  • quarkus-jdbc-postgresql

  • quarkus-kafka-client

  • quarkus-smallrye-reactive-messaging-kafka

随着 Kubernetes 上支持绑定的服务的增加,此扩展列表将会增长。

要启用服务绑定支持,除了当前支持的扩展之一外,还需要将 quarkus-kubernetes-service-binding 扩展添加到应用程序依赖项中。

您需要了解的一切都在Kubernetes 指南中详细介绍。

基于 RESTEasy Reactive 的 MicroProfile REST 客户端

我们正在继续丰富 RESTEasy Reactive 的体验,这次是在 REST 客户端方面。 Quarkus 1.13 中存在一个新的基于 RESTEasy Reactive 的 REST 客户端扩展 quarkus-rest-client-reactive

请注意,RESTEasy Reactive 可用于响应式工作负载,也可用于传统的阻塞工作负载。

基于 Vert.x 的 Websockets

到目前为止,如果您想在应用程序中使用 websockets 支持,则必须切换到 Undertow。

Quarkus 1.13 引入了一个纯 Vert.x 的 Websockets 扩展,称为 quarkus-websockets

测试覆盖率报告

鉴于 Quarkus 的架构方式,使用 Jacoco 生成测试覆盖率报告并不像应该的那么容易。

Quarkus 1.13 附带 quarkus-jacoco,它将自动生成您的测试覆盖率报告。 它不再需要任何 Maven 设置。 更多关于这方面的信息请参见我们更新的指南

@QuarkusIntegrationTest

@QuarkusIntegrationTest@NativeImageTest 的自然演变(仍然支持),可用于启动和测试 Quarkus 构建生成的产品,并支持测试 jar(所有类型)、本机二进制文件或容器镜像。 有关更多信息,请参阅文档的部分以及注释本身的 Javadoc。

完整变更日志

您可以在 GitHub 上获取 1.13.0.CR11.13.0.Final 的完整变更日志。

ADOPTERS.md

为了分享有关 Quarkus 用法的故事,我们在存储库的根目录中添加了一个 ADOPTERS.md 文件

如果您正在使用 Quarkus 并希望在我们的博客上接受采访或只是添加到此文件中,请与我们联系,我们很乐意效劳。

贡献者

Quarkus 社区正在发展,现在有 461 位贡献者。 非常感谢每一位。

特别是对于 1.13 版本,感谢 adrien、Alexey Loubyansky、Andrii Pyvovarov、Andy Damevin、Ante Butić、antoniodvr、Auri Munoz、Bernhard Lutzmann、Bill Burke、Bruno Leonardo Gonçalves、Cem Nura、Chris Laprun、Christopher Chianelli、Clement Escoffier、David M. Lloyd、Davide D’Alto、Edoardo Vacchi、Emanuel Alves、Eric Deandrea、Erin Schnabel、essobedo、Falko Modler、Foivos Zakkak、Geoffrey De Smet、George Gastaldi、Georgios Andrianakis、Guillaume Le Floch、Guillaume Smet、Gytis Trikleris、Ioannis Canellos、ismail BASKIN、Jacob Middag、Jaikiran Pai、Jan Martiška、Jim Ma、JiriOndrusek、Johnnes Souza、Jonathan Meier、Jose、Josef Smrcka、Julien Ponge、Justin Lee、Katia Aresti、Ken Finnigan、Knut Wannheden、Ladislav Thon、Lena Brueder、Loïc Mathieu、Maciej Swiderski、manusa、Manyanda Chitimbo、markusdlugi、Martin Kouba、Martin Panzer、Matej Novotny、Matthias Andreas Benkard、Max Rydahl Andersen、Mayank Kunwar、Michał Szynkiewicz、mrizzi、PAPADOPOULOS Nikolaos、Peter Palaga、Philip Hayes、Phillip Krüger、Robbie Gemmell、Roberto Cortez、Rostislav Svoboda、ruromero、Sanne Grinovero、SaumyaSingh1、Sergey Beryozkin、Sergio Sivelli、Shaaf、shawkins、Simon Hofer、Stephen Nimmo、Steven Hawkins、Stuart Douglas、Stéphane Épardaud、Suleimenov Yelzhas、Thomas McWork、Timothy Power、Tobias Stadler、Vasilis Andritsoudis、Vincent Sevel、xstefank 和 Yoann Rodière。

加入我们

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

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