Quarkus 1.3 和 Eclipse MicroProfile 3.3
随着 Quarkus 1.3 发布的消息,我们也高兴地宣布 Quarkus 1.3 通过了所有 Eclipse MicroProfile 3.3 规范的 TCK 测试。
MicroProfile 3.3 包含以下规范更新
-
Config 1.4
-
Fault Tolerance 2.1
-
Health 2.2
-
Metrics 2.3
-
REST Client 1.4
Config
Config 更新包括了修复,以防止 ConfigProviderResolver
的错误缓存及其相关的类加载器问题。
它还调整了隐式转换器的优先级,并为 byte
、short
和 char
添加了转换器。优先级更改意味着隐式转换将利用任何静态方法,然后再尝试使用构造函数。
Fault Tolerance
CircuitBreaker
和 Fallback
都添加了 skipOn
属性,Fallback
添加了 applyOn
属性,因此现在可以定义触发行为或传递给调用者的异常。这为什么重要?
我们发现了一些实际用例,其中需要为特定异常触发容错策略,同时也能够将其他异常视为“正常”,以防止应用策略。
Health
它包含了一些小的更新,包括为所有限定符添加注解字面量,以便于以编程方式查找,并将 HealthCheckResponse
改为具体类,使其可以在消费端使用。
Metrics
添加了 @SimplyTimed
,它不执行平均值和分布计算。它只计算方法的命中次数和花费的时间。@SimplyTimed
是 @Timed
的“简单”版本,可以减少计算时间,因为这些计算可以由 Prometheus 使用 @SimplyTimed
的原始数据来完成。
该规范现在还定义了特定于 JAX-RS 调用的可选指标。对于每个 JAX-RS 方法,都有一个 Simple Timer,因此我们可以测量请求的总数和在该方法中花费的总时间。
该规范还增加了一个可选的基准指标 ProcessCpuTime,用于跟踪 JVM 占用的 CPU 时间。它是可选的,因为其值无法从 JDK 接口获得,只能从内部 Sun 接口获得。
REST Client
现在规定支持将 CDI 注入 ClientHeadersFactory
是该规范的要求。这解决了之前无法将 @Inject
注入该类的问题。
用于注入点的 @RestClient
限定符现在指定了 @Target
,使其可以在 Kotlin 中使用。有许多使用 Kotlin 的 Quarkus 用户在之前的版本中遇到了这个问题。
独立
除了 MicroProfile 平台中的规范之外,Quarkus 还包括 Reactive Streams Operators、Reactive Messaging 和 Context Propagation 的实现。无论是命令式还是响应式,Quarkus 都能满足您的需求!
在不久的将来,Quarkus 还将开始包含 Long-Running Actions 和 GraphQL 新独立规范的实现。
总结
Quarkus 1.3 的发布继续了我们通过 SmallRye 实现 MicroProfile 规范并在 Quarkus 中使用它们的承诺。请对 MicroProfile 功能提供反馈,以确保我们提供开发者所需和想要的。如果我们缺少关键功能,请告诉我们!