1.6. 技术预览
本节列出了在红帽构建的 Quarkus 3.2 中作为技术预览提供的功能和扩展。
技术预览功能不被红帽产品服务级别协议(SLA)支持,且其功能可能并不完善,红帽建议您不要在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能的更多信息,请参阅 技术预览功能范围。
1.6.1. 增强的组件测试 复制链接链接已复制到粘贴板!
Red Hat build of Quarkus 3.2 引进了名为 QuarkusComponentTestExtension 的 JUnit 扩展作为技术预览功能。
这个新扩展旨在帮助简化 CDI 组件的测试以及其依赖项的模拟,并包括在 quarkus-junit5-component 依赖项中。
如需更多信息,请参阅 Red Hat build of Quarkus "Testing your application" 指南中的 Testing components 部分。
1.6.2. Hibernate Reactive 升级到版本 2 复制链接链接已复制到粘贴板!
在这个版本中,Red Hat build of Quarkus 依赖于 Hibernate Reactive 2 扩展而不是 Hibernate Reactive 1。这个变化意味着行为和数据库模式期望有一些变化,它们与早期版本不兼容。大多数更改都与 Hibernate Reactive 2 相关,具体取决于 Hibernate ORM 6.2 而不是 Hibernate ORM 5.6。
quarkus-opentelemetry-exporter-otlp 扩展是 quarkus-opentelemetry 扩展的一部分。此统一扩展提供 OpenTelemetry 协议(OTLP)导出器功能,而无需额外的设置,从而简化 OTLP 导出器使用情况。
1.6.4. 支持在数据库中存储事务日志 复制链接链接已复制到粘贴板!
使用红帽构建的 Quarkus 3.2,对于持久性存储不可用的云环境,比如当应用程序容器无法使用持久性卷时,您可以使用 Java 数据库连接(JDBC)数据源配置事务管理,将事务日志存储在数据库中。
此配置仅与 Jakarta 事务 相关。
虽然使用数据库存储事务日志有几个优点,但您可能会注意到与使用文件系统存储日志相比的性能降低。
但是,在云原生应用程序中,务必要仔细评估事务。narayana-jta 扩展(管理这些事务)需要稳定的存储、唯一可重复使用的节点标识符和一个稳定 IP 地址才能正常工作。JDBC 对象存储提供稳定的存储,但用户仍必须计划如何满足其他两个要求。
要使用 JDBC 数据源存储事务日志,请配置 quarkus.transacion-manager.object-store.<property> 属性,其中 & lt;property > 可以是以下选项之一:
-
Type(字符串):将此属性配置为jdbc,以启用使用红帽构建的 Quarkus JDBC 数据源来存储事务日志。默认值为file-system。 -
Datasource(字符串):指定事务日志存储的数据源名称。如果没有为datasource属性提供值,Red Hat build of Quarkus 会使用默认的数据源。 -
可以创建(布尔值):当设为true时,如果事务日志表尚不存在,则会自动创建。默认值为false。 -
drop-table(布尔值):当设为true时,如果表已存在,则在启动时将丢弃这些表。默认值为false。 -
table-prefix(字符串):指定相关表名称的前缀。默认值为quarkus_。
还请考虑以下点:
-
您可以通过将
create-table属性设置为true,在初始设置中手动创建事务日志表。 JDBC 数据源和 ActiveMQ Artemis 允许连接和自动注册
XAResourceRecovery实例。但请注意,红帽构建的 Quarkus 支持不包括在数据库中存储事务日志的以下点:
-
JDBC datasources 是
quarkus-agroal扩展的一部分,要求设置以下应用属性,如下所示:quarkus.datasource.jdbc.transactions=XA. ActiveMQ Artemis (社区客户端)是
quarkus-pooled-jms扩展的一部分,并且要求设置下列应用属性,如下所示:quarkus.pooled-jms.transaction=XA。如需更多信息,请参阅 CEQ-4878。
-
JDBC datasources 是
-
为确保在应用程序崩溃或失败时数据保护,请使用
quarkus.transaction-manager.enable-recovery=true配置启用事务崩溃恢复。
要临时解决这个问题 Agroal 在运行事务检查时具有不同的视图,请为负责将事务日志写入的数据源设置数据源事务类型:
quarkus.datasource.<TX_LOG>.jdbc.transactions=disabled
quarkus.datasource.<TX_LOG>.jdbc.transactions=disabled
这个示例使用 TX_LOG 作为数据源名称。