该新闻稿已发布 夸库斯 3.36 ——一个面向云原生应用的Java框架,专注于容器、Kubernetes、JVM和本地编译。该版本已发布。 27的五月2026年主要变化涉及组件间信号交换的新实验机制、供应链安全改进、TLS 以及零信任场景下的 OIDC 认证。
要进行更新,开发者建议使用最新版本的 Quarkus CLI 并运行以下命令:
Quarkus 更新
根据该项目的说法,quarkus update 命令可以将应用程序从 Quarkus 2.x 分支更新到 Quarkus 3.36。
主要变化
Quarkus Signals 是一个用于在组件之间交换信号的实验性扩展。
Quarkus 引入了一种新机制,允许应用程序组件以松耦合的方式进行交互:一个组件发送信号,另一个组件接收信号。接收者解析是类型安全的,其灵感来源于 CDI 事件:信号通过类型和限定符与处理程序进行匹配。Quarkus 支持三种模式:发布(发送给所有接收者)、发送(通过轮询选择发送给单个接收者)和请求-回复(带有类型化响应的请求)。每种模式都提供阻塞式 API 和基于 Uni 的响应式 API。信号处理程序的灵活执行模型。
信号接收器异步执行,可以是阻塞式、非阻塞式或在虚拟线程上运行。这可以通过常用的 Quarkus 注解(例如 @Blocking、@NonBlocking 和 @RunOnVirtualThread)来实现。此外,还支持通过 Fluent Builder API 进行运行时注册和移除处理程序。面向集成商的信号和SPI元数据。
信号可以分配任意键值对,处理程序可以通过 SignalContext 访问这些键值对。为了扩展此功能,我们添加了 SignalMetadataEnricher 和 ReceiverInterceptor 集成点。此扩展目前处于实验阶段,开发人员正在等待用户反馈。嵌入式 SBOM 用于依赖项。
Quarkus 现在可以将软件物料清单 (SBOM)(依赖关系描述)直接嵌入到已构建的应用程序中。默认情况下,此 SBOM 可通过 `/.well-known/sbom` 端点提供。这对于依赖关系审计、组件清单和后续漏洞扫描非常有用。SBOM 在原生图像中。
根据 GraalVM SBOM 规范,原生镜像新增了将 SBOM 直接嵌入原生二进制文件的功能。这避免了应用程序并非以 JVM 组件的形式分发,而是以独立可执行文件的形式分发的情况。通过 SPIFFE 进行 OIDC 客户端身份验证。
Quarkus OIDC 新增了对 SPIFFE JWT 令牌的支持,用于通过 Keycloak 等提供商进行客户端身份验证。此项变更旨在服务于具有工作负载身份、零信任模型以及服务间交互的基础架构,在这些架构中,工作负载身份比静态密钥更为重要。自定义密钥库和信任库类型。
TLS 注册表现在支持自定义密钥库和信任库类型,例如 BCFKS,可通过新增的“其他”配置组进行配置。可以使用类似 quarkus.tls.key-store.other.type= 的参数指定类型。无需编写任何额外代码。如果某个类型需要自己的加载逻辑,您可以提供一个带有相应 @Identifier 的 KeyStoreFactory 或 TrustStoreFactory CDI bean。JSON 日志中的动态字段。
新增了一个 JsonProvider SPI,允许您为每个条目动态地向 JSON 日志添加字段。这样,您就可以使用运行时上下文(例如额外的请求标识符、服务标签或环境数据)来丰富日志。GraphQL客户端的TLS热重载。
GraphQL 客户端现在支持动态 TLS 配置重载。此前,新的 TLS 配置仅在创建新客户端实例时才会生效,这需要缩小 CDI 作用域。现在,更新会立即生效,即使对于应用范围的客户端也有效。
其他变更和组件更新
在最终版本中 3.36.0 此外,还值得一提的是 Signals 的改进、Gradle 9.5.1 的更新、Jackson BOM 2.21.3、slf4j-api 2.0.18、Microsoft SQL Server JDBC 驱动程序 13.4.0、对多种 SunPKCS11 配置的支持、对外部扩展的 POM 生成进行修复,以及将 preauthorized_code 添加为 OidcClient 授权类型的选项。
Quarkus平台组件也已更新: Camel Quarkus 3.36.0, Debezium 3.5.1.最终版, Quarkus Amazon Services 3.19.0, Quarkus LangChain4j 1.10.0, Quarkus MCP 服务器 1.12.1 и Quarkus Operator SDK 7.7.5.
来源: linux.org.ru
