1.4. 参考
1.4.1. 常见数据源配置参考
构建时修复的配置属性 - 所有其他配置属性可在运行时覆盖
类型 | default | |
如果存在 smallrye-health 扩展,是否发布健康检查。 这是一个全局设置,不特定于数据源。
环境变量: | 布尔值 |
|
如果存在指标扩展,是否发布数据源指标。 这是一个全局设置,不特定于数据源。 注意 这与需要在 JDBC 数据源级别上设置的 "jdbc.enable-metrics" 属性不同,以便为该数据源启用指标集合。
环境变量: | 布尔值 |
|
类型 | default | |
我们将连接到的数据库类型(例如 h2、postgresql…)。
环境变量: | string | |
我们将连接到的数据库版本(例如'10.0'). 小心
此处设置的版本号应该遵循与数据库 JDBC 驱动程序的 作为规则,这里设置的版本应尽可能高,但必须小于或等于应用程序要连接到的任何数据库的版本。 高版本将提高性能和使用更多功能(例如 Hibernate ORM 可能会生成效率更高的 SQL,避免临时解决方案并利用更多数据库功能),但如果它比您要连接的数据库版本高,则可能会导致运行时异常(例如 Hibernate ORM 可能会生成无效的 SQL,以便您数据库将拒绝)。 某些扩展(如 Hibernate ORM 扩展)将尝试在启动时针对实际数据库版本检查这个版本,从而导致实际版本较低或只是在数据库无法访问时发出警告。 此属性的默认值特定于每个扩展;Hibernate ORM 扩展将默认为它支持的最旧的版本。
环境变量: | string | |
此 Dev Service 是否应该以 dev 模式为应用程序启动,还是测试。 除非明确设置了 JDBC URL 或被动客户端 URL,否则 dev Services 会被默认启用。
环境变量: | 布尔值 | |
基于容器的 Dev Service 供应商的容器镜像名称。 如果提供程序不是基于容器的数据库,如 H2 或 Derby,则这不起作用。
环境变量: | string | |
传递给容器的环境变量。
环境变量: |
| |
为其他容器配置传递的通用属性。 此处定义的属性是特定于数据库的属性,特别是在每个数据库开发服务实施中。
环境变量: |
| |
添加到数据库连接 URL 的通用属性。
环境变量: |
| |
dev 服务将侦听的可选固定端口。 如果没有定义,则会随机选择端口。
环境变量: | int | |
用于基于容器的 Dev Service 供应商的容器 start 命令。 如果提供程序不是基于容器的数据库,如 H2 或 Derby,则这不起作用。
环境变量: | string | |
如果此 Dev 服务支持覆盖它,则使用数据库名称。
环境变量: | string | |
如果此 Dev Service 支持覆盖它,则使用的用户名。
环境变量: | string | |
如果此 Dev 服务支持覆盖它,则使用密码。
环境变量: | string | |
要从 classpath 加载的 SQL 脚本的路径,并应用到 Dev Service 数据库。 如果提供程序不是基于容器的数据库,如 H2 或 Derby,则这不起作用。
环境变量: | string | |
要映射到容器的卷。 map 键对应于主机位置;映射值是容器位置。如果主机位置以 "classpath:" 开头,则映射会从具有只读权限的 classpath 中加载资源。 使用文件系统位置时,将生成具有读写权限的卷,可能会导致文件系统中的数据丢失或修改。 如果提供程序不是基于容器的数据库,如 H2 或 Derby,则这不起作用。
环境变量: |
| |
在 dev 模式会话或测试套件执行后, 是否保持 Dev Service 容器运行,以便在下一个 dev 模式会话或测试套件执行中重复使用它们。 在 dev 模式会话或测试套件执行中,如果它们的配置(用户名、密码、环境、端口绑定、…)没有改变,则 Quarkus 将始终重复使用 Dev Services。此功能专用于在 Quarkus 未运行时保持容器运行,以便在运行之间重复使用容器。 警告
这个功能需要在
默认情况下,此配置属性设为
环境变量: | 布尔值 |
|
如果启用了数据源的常规健康检查,是否应从健康检查中排除此特定数据源。 默认情况下,健康检查包含所有配置的数据源(如果已启用)。
环境变量: | 布尔值 |
|
此数据源是否应该在运行时处于活动状态。 如果数据源未激活,则不会从应用程序开始,访问对应的 Datasource CDI bean 将失败,这意味着此数据源的特定消费者(如 Hibernate ORM 持久性单元)将无法启动,除非它们也不活跃。
环境变量: | 布尔值 |
|
数据源用户名
环境变量: | string | |
数据源密码
环境变量: | string | |
凭证供应商名称
环境变量: | string | |
凭据 provider bean 名称。
这是实施
对于 Vault,凭据提供程序 bean 名称为
环境变量: | string |
1.4.2. JDBC 配置参考
构建时修复的配置属性 - 所有其他配置属性可在运行时覆盖
类型 | default | |
数据源 URL
环境变量: | string | |
池的初始大小。通常,您希望将初始大小设置为至少与最小大小匹配,但不强制这样做,以便允许在启动时具有延迟初始化连接的架构,同时可以在启动后保持最小池大小。
环境变量: | int | |
数据源池最小大小
环境变量: | int |
|
数据源池最大大小
环境变量: | int |
|
我们在后台验证闲置连接的间隔。
设置为
环境变量: |
| |
在闲置的时间超过指定间隔的连接上执行前台验证。
环境变量: | ||
取消获取新连接前的超时时间
环境变量: |
| |
我们检查连接泄漏的时间间隔。
环境变量: |
| |
我们尝试删除闲置连接的间隔。
环境变量: |
| |
连接的最大生命周期。
环境变量: |
| |
事务隔离级别。
环境变量: |
| |
收集并显示有关泄漏连接的额外故障排除信息。
环境变量: | 布尔值 |
|
允许在返回到池时清空连接。默认情况下不启用它。
环境变量: | 布尔值 |
|
启用后,当连接返回池时,如果没有关闭所有 open 语句的应用程序,则 Agroal 将能够生成警告。这与跟踪开放连接无关。禁用峰值性能,但仅在有高信任时不会发生泄漏。
环境变量: | 布尔值 |
|
首次使用连接时执行的查询。
环境变量: | string | |
执行查询以验证连接。
环境变量: | string | |
禁用池以防止重复使用连接。当外部池管理 Connections 的生命周期时,请使用此选项。
环境变量: | 布尔值 |
|
在获取连接时需要活跃的事务。建议用于生产环境。警告:有些扩展会获取连接,而不会为架构更新和架构验证等操作留出一个事务。将此设置设置为 STRICT 可能会导致在这种情况下失败。
环境变量: |
| |
启用 JDBC 追踪。
环境变量: | 布尔值 |
|
仅跟踪带有活跃 Span 的调用
环境变量: | 布尔值 |
|
忽略要跟踪的特定查询
环境变量: | string |
|
启用 OpenTelemetry JDBC 检测。
环境变量: | 布尔值 |
|
创建新连接时要传递给 JDBC 驱动程序的其他未指定属性。
环境变量: |
| |
类型 | default | |
如果我们为此数据源创建 JDBC 数据源。
环境变量: | 布尔值 |
|
数据源驱动程序类名称
环境变量: | string | |
是否要使用常规 JDBC 事务、XA 或禁用所有事务功能。
启用 XA 时,您将需要实施
环境变量: |
|
|
启用数据源指标集合。如果未指定,如果指标扩展处于活跃状态,则默认启用收集指标。
环境变量: | 布尔值 | |
启用 JDBC 追踪。默认禁用此选项。
环境变量: | 布尔值 |
|
启用 OpenTelemetry JDBC 检测。
环境变量: | 布尔值 |
|
类型 | default | |
数据源 URL
环境变量: | string | |
池的初始大小。通常,您希望将初始大小设置为至少与最小大小匹配,但不强制这样做,以便允许在启动时具有延迟初始化连接的架构,同时可以在启动后保持最小池大小。
环境变量: | int | |
数据源池最小大小
环境变量: | int |
|
数据源池最大大小
环境变量: | int |
|
我们在后台验证闲置连接的间隔。
设置为
环境变量: |
| |
在闲置的时间超过指定间隔的连接上执行前台验证。
环境变量: | ||
取消获取新连接前的超时时间
环境变量: |
| |
我们检查连接泄漏的时间间隔。
环境变量: |
| |
我们尝试删除闲置连接的间隔。
环境变量: |
| |
连接的最大生命周期。
环境变量: |
| |
事务隔离级别。
环境变量: |
| |
收集并显示有关泄漏连接的额外故障排除信息。
环境变量: | 布尔值 |
|
允许在返回到池时清空连接。默认情况下不启用它。
环境变量: | 布尔值 |
|
启用后,当连接返回池时,如果没有关闭所有 open 语句的应用程序,则 Agroal 将能够生成警告。这与跟踪开放连接无关。禁用峰值性能,但仅在有高信任时不会发生泄漏。
环境变量: | 布尔值 |
|
首次使用连接时执行的查询。
环境变量: | string | |
执行查询以验证连接。
环境变量: | string | |
禁用池以防止重复使用连接。当外部池管理 Connections 的生命周期时,请使用此选项。
环境变量: | 布尔值 |
|
在获取连接时需要活跃的事务。建议用于生产环境。警告:有些扩展会获取连接,而不会为架构更新和架构验证等操作留出一个事务。将此设置设置为 STRICT 可能会导致在这种情况下失败。
环境变量: |
| |
创建新连接时要传递给 JDBC 驱动程序的其他未指定属性。
环境变量: |
| |
启用 JDBC 追踪。
环境变量: | 布尔值 |
|
仅跟踪带有活跃 Span 的调用
环境变量: | 布尔值 |
|
忽略要跟踪的特定查询
环境变量: | string |
|
启用 OpenTelemetry JDBC 检测。
环境变量: | 布尔值 |
|
要写入持续时间值,请使用标准的 java.time.Duration
格式。如需更多信息,请参阅 Duration#parse ()Java API 文档。
您还可以使用简化的格式,从数字开始:
- 如果该值只是一个数字,则代表以秒为单位。
-
如果值是数字,后跟
ms
,则表示时间(毫秒)。
在其他情况下,简化的格式转换为 java.time.Duration
格式进行解析:
-
如果该值是一个数字,后跟
h
、m
或s
,则使用PT
前缀。 -
如果该值是一个数字,后跟
d
,则前缀为P
。
1.4.3. JDBC URL 参考
每个支持的数据库都包含不同的 JDBC URL 配置选项。以下部分介绍了每个数据库 URL 和官方文档的链接。
1.4.3.1. DB2
jdbc:db2://<serverName>[:<portNumber>]/<databaseName>[:<key1>=<value>;[<key2>=<value2>;]]
- Example
-
jdbc:db2://localhost:50000/MYDB:user=dbadm;password=dbadm;
有关 URL 语法和其他支持的选项的更多信息,请参阅 官方文档。
1.4.3.2. Derby
jdbc:derby:[//serverName[:portNumber]/][memory:]databaseName[;property=value[;property=value]]
- Example
-
jdbc:derby://localhost:1527/myDB
,jdbc:derby:memory:myDB;create=true
Derby 是一个嵌入式数据库,可作为服务器运行(基于文件),也可以完全在内存中运行。上面列出的所有选项都可用。
如需更多信息,请参阅 官方文档。
1.4.3.3. H2
jdbc:h2:{ {.|mem:}[name] | [file:]fileName | {tcp|ssl}:[//]server[:port][,server2[:port]]/name }[;key=value…]
- Example
-
jdbc:h2:tcp://localhost/~/test
,jdbc:h2:mem:myDB
H2 是一个可在嵌入式或服务器模式下运行的数据库。它可以使用文件存储或完全在内存中运行。上面列出的所有选项都可用。
如需更多信息,请参阅 官方文档。
1.4.3.4. MariaDB
JDBC:mariadb:[replication:|failover:|sequential:|aurora:]//<hostDescription>[,<hostDescription>…]/[database][?<key1>=<value1>[&<key2>=<value2>]]
hostDescription:: < host>[:<portnumber>] or address=(host=<host>)[(port=<portnumber>)][(type=(master|slave))]
- Example
-
jdbc:mariadb://localhost:3306/test
如需更多信息,请参阅 官方文档。
1.4.3.5. Microsoft SQL 服务器
jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
- Example
-
jdbc:sqlserver://localhost:1433;databaseName=AdventureWorks
Microsoft SQL Server JDBC 驱动程序的工作方式基本上与其它驱动程序相同。
如需更多信息,请参阅 官方文档。
1.4.3.6. MySQL
jdbc:mysql:[replication:|failover:|sequential:|aurora:]//<hostDescription>[,<hostDescription>…]/[database][?<key1>=<value1>[&<key2>=<value2>]]
hostDescription:: <host>[:< portnumber>] 或 address=(host=<host>)[(port=<portnumber>)[(port=<portnumber>)][(type=(master|slave)]
- Example
-
jdbc:mysql://localhost:3306/test
如需更多信息,请参阅 官方文档。
1.4.3.6.1. MySQL 限制
当将 Quarkus 应用程序编译到原生镜像时,对 JMX 和 Oracle Cloud Infrastructure (OCI)集成的 MySQL 支持被禁用,因为它们与 GraalVM 原生镜像不兼容。
- 缺少 JMX 支持是以原生模式运行的自然结果,不太可能解决。
- 不支持与 OCI 集成。
1.4.3.7. Oracle
jdbc:oracle:driver_type:@database_specifier
- Example
-
jdbc:oracle:thin:@localhost:1521/ORCL_SVC
如需更多信息,请参阅 官方文档。
1.4.3.8. PostgreSQL
jdbc:postgresql:[//][host][:port][/database][?key=value…]
- Example
-
jdbc:postgresql://localhost/test
不同部分的默认值如下:
主机
- localhost
port
- 5432
database
- 与用户名相同
有关附加参数的更多信息,请参阅 官方文档。
1.4.4. Quarkus 扩展和数据库驱动程序参考
下表列出了内置的 db-kind
值、相应的 Quarkus 扩展以及这些扩展使用的 JDBC 驱动程序。
使用其中一个内置数据源类型时,会自动解析 JDBC 和 Reactive 驱动程序,以匹配这些表中的值。
数据库类型 | Quarkus 扩展 | 驱动程序 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
数据库类型 | Quarkus 扩展 | 驱动 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
在大多数情况下,这个自动解析都适用,因此不需要驱动程序配置。
1.4.5. 主动数据源配置参考
构建时修复的配置属性 - 所有其他配置属性可在运行时覆盖
类型 | default | |
如果我们为此数据源创建主动数据源。
环境变量: | 布尔值 |
|
准备的语句是否应在客户端上缓存。
环境变量: | 布尔值 |
|
数据源 URL。 如果设置了多个值,则此数据源会创建一个包含服务器列表而不是单个服务器的池。该池在连接建立过程中对服务器选择使用循环负载平衡。请注意,某些驱动程序可能在此上下文中不容纳多个值。
环境变量: | 字符串列表 | |
数据源池最大大小。
环境变量: | int |
|
创建新连接对象时,池会为它分配一个事件循环。
当
环境变量: | int | |
所有服务器证书是否应该被信任。
环境变量: | 布尔值 |
|
默认情况下禁用 PEM Trust 配置。
环境变量: | 布尔值 |
|
以逗号分隔的信任证书文件列表(Pem 格式)。
环境变量: | 字符串列表 | |
JKS 配置默认为禁用。
环境变量: | 布尔值 |
|
密钥文件的路径(JKS 格式)。
环境变量: | string | |
密钥文件的密码。
环境变量: | string | |
默认情况下禁用 PFX 配置。
环境变量: | 布尔值 |
|
密钥文件的路径(PFX 格式)。
环境变量: | string | |
密钥的密码。
环境变量: | string | |
默认情况下禁用 PEM Key/cert 配置。
环境变量: | 布尔值 |
|
以逗号分隔的密钥文件的路径列表(Pem 格式)。
环境变量: | 字符串列表 | |
以逗号分隔的证书文件的路径列表(Pem 格式)。
环境变量: | 字符串列表 | |
JKS 配置默认为禁用。
环境变量: | 布尔值 |
|
密钥文件的路径(JKS 格式)。
环境变量: | string | |
密钥文件的密码。
环境变量: | string | |
默认情况下禁用 PFX 配置。
环境变量: | 布尔值 |
|
密钥文件的路径(PFX 格式)。
环境变量: | string | |
密钥的密码。
环境变量: | string | |
当无法在第一次尝试建立连接时重新连接尝试的数量。
环境变量: | int |
|
在第一次尝试时无法建立池连接时重新连接尝试的时间间隔。
环境变量: |
| |
应该检查服务器身份时使用的主机名验证算法。应该是
环境变量: | string |
|
连接在池关闭前未使用的最长时间。
环境变量: |
| |
连接在池中保留的最长时间,之后将根据需要关闭并替换它。
环境变量: |
| |
设置为 true,以在数据源间共享池。当未设置特定名称时,可以使用
环境变量: | 布尔值 |
|
设置池名称,在池在数据源之间共享时使用,否则忽略。
环境变量: | string | |
在启动新连接时,要通过 Reactive SQL 客户端直接传递给数据库的其他未指定属性。
环境变量: |
| |
类型 | default | |
如果我们为此数据源创建主动数据源。
环境变量: | 布尔值 |
|
准备的语句是否应在客户端上缓存。
环境变量: | 布尔值 |
|
数据源 URL。 如果设置了多个值,则此数据源会创建一个包含服务器列表而不是单个服务器的池。该池在连接建立过程中对服务器选择使用循环负载平衡。请注意,某些驱动程序可能在此上下文中不容纳多个值。
环境变量: | 字符串列表 | |
数据源池最大大小。
环境变量: | int |
|
创建新连接对象时,池会为它分配一个事件循环。
当
环境变量: | int | |
所有服务器证书是否应该被信任。
环境变量: | 布尔值 |
|
默认情况下禁用 PEM Trust 配置。
环境变量: | 布尔值 |
|
以逗号分隔的信任证书文件列表(Pem 格式)。
环境变量: | 字符串列表 | |
JKS 配置默认为禁用。
环境变量: | 布尔值 |
|
密钥文件的路径(JKS 格式)。
环境变量: | string | |
密钥文件的密码。
环境变量: | string | |
默认情况下禁用 PFX 配置。
环境变量: | 布尔值 |
|
密钥文件的路径(PFX 格式)。
环境变量: | string | |
密钥的密码。
环境变量: | string | |
默认情况下禁用 PEM Key/cert 配置。
环境变量: | 布尔值 |
|
以逗号分隔的密钥文件的路径列表(Pem 格式)。
环境变量: | 字符串列表 | |
以逗号分隔的证书文件的路径列表(Pem 格式)。
环境变量: | 字符串列表 | |
JKS 配置默认为禁用。
环境变量: | 布尔值 |
|
密钥文件的路径(JKS 格式)。
环境变量: | string | |
密钥文件的密码。
环境变量: | string | |
默认情况下禁用 PFX 配置。
环境变量: | 布尔值 |
|
密钥文件的路径(PFX 格式)。
环境变量: | string | |
密钥的密码。
环境变量: | string | |
当无法在第一次尝试建立连接时重新连接尝试的数量。
环境变量: | int |
|
在第一次尝试时无法建立池连接时重新连接尝试的时间间隔。
环境变量: |
| |
应该检查服务器身份时使用的主机名验证算法。应该是
环境变量: | string |
|
连接在池关闭前未使用的最长时间。
环境变量: |
| |
连接在池中保留的最长时间,之后将根据需要关闭并替换它。
环境变量: |
| |
设置为 true,以在数据源间共享池。当未设置特定名称时,可以使用
环境变量: | 布尔值 |
|
设置池名称,在池在数据源之间共享时使用,否则忽略。
环境变量: | string | |
在启动新连接时,要通过 Reactive SQL 客户端直接传递给数据库的其他未指定属性。
环境变量: |
|
要写入持续时间值,请使用标准的 java.time.Duration
格式。如需更多信息,请参阅 Duration#parse ()Java API 文档。
您还可以使用简化的格式,从数字开始:
- 如果该值只是一个数字,则代表以秒为单位。
-
如果值是数字,后跟
ms
,则表示时间(毫秒)。
在其他情况下,简化的格式转换为 java.time.Duration
格式进行解析:
-
如果该值是一个数字,后跟
h
、m
或s
,则使用PT
前缀。 -
如果该值是一个数字,后跟
d
,则前缀为P
。
1.4.5.1. 被动 DB2 配置
构建时修复的配置属性 - 所有其他配置属性可在运行时覆盖
类型 | default | |
是否启用 SSL/TLS。
环境变量: | 布尔值 |
|
1.4.5.2. 主动 MariaDB/MySQL 特定配置
构建时修复的配置属性 - 所有其他配置属性可在运行时覆盖
1.4.5.3. 主动 Microsoft SQL 服务器特定配置
构建时修复的配置属性 - 所有其他配置属性可在运行时覆盖
类型 | default | |
TDS 数据包所需的大小(以字节为单位)。
环境变量: | int | |
是否启用 SSL/TLS。
环境变量: | 布尔值 |
|
1.4.5.4. 主动 Oracle 特定的配置
构建时修复的配置属性 - 所有其他配置属性可在运行时覆盖
类型 | default |
1.4.5.5. 主动 PostgreSQL 特定配置
构建时修复的配置属性 - 所有其他配置属性可在运行时覆盖
类型 | default | |
可以管道的 inflight 数据库命令的最大数量。
环境变量: | int | |
客户端的 SSL 操作模式。 请参阅 不同模式中提供的保护。
环境变量: |
|
|
级别 7 代理可以在多个连接上负载平衡到实际数据库的查询。当发生时,客户端可以被缺少会话关联和不需要的错误混淆,如 ERROR: unnamed prepared 语句不存在(26000)。请参阅使用级别 7 代理
环境变量: | 布尔值 |
|
1.4.6. 主动数据源 URL 参考
1.4.6.1. DB2
db2://[user[:[password]]@]host[:port][/database][?<key1>=<value1>[&<key2>=<value2>]]
- Example
-
db2://dbuser:secretpassword@database.server.com:50000/mydb
目前,客户端支持以下参数键:
-
主机
-
port
-
user
-
password
-
database
在连接 URL 中配置参数会覆盖默认属性。
1.4.6.2. Microsoft SQL 服务器
sqlserver://[user[:[password]]@]host[:port][/database][?<key1>=<value1>[&<key2>=<value2>]]
- Example
-
sqlserver://dbuser:secretpassword@database.server.com:1433/mydb
目前,客户端支持以下参数键:
-
主机
-
port
-
user
-
password
-
database
在连接 URL 中配置参数会覆盖默认属性。
1.4.6.3. MySQL / MariaDB
mysql://[user[:[password]]@]host[:port][/database][?<key1>=<value1>[&<key2>=<value2>]]
- Example
-
mysql://dbuser:secretpassword@database.server.com:3211/mydb
目前,客户端支持以下参数键(不区分大小写):
-
主机
-
port
-
user
-
password
-
schema
-
socket
-
useAffectedRows
在连接 URL 中配置参数会覆盖默认属性。
1.4.6.4. Oracle
1.4.6.4.1. EZConnect 格式
oracle:thin:@[[protocol:]//]host[:port][/service_name][:server_mode][/instance_name][?connection properties]
- Example
-
oracle:thin:@mydbhost1:5521/mydbservice?connect_timeout=10sec
1.4.6.4.2. TNS 别名格式
oracle:thin:@<alias_name>[?connection properties]
- Example
-
oracle:thin:@prod_db?TNS_ADMIN=/work/tns/
1.4.6.5. PostgreSQL
postgresql://[user[:[password]]@]host[:port][/database][?<key1>=<value1>[&<key2>=<value2>]]
- Example
-
postgresql://dbuser:secretpassword@database.server.com:5432/mydb
目前,客户端支持:
以下参数键:
-
主机
-
port
-
user
-
password
-
dbname
-
sslmode
-
其他属性,例如:
-
application_name
-
fallback_application_name
-
search_path
-
options
-
在连接 URL 中配置参数会覆盖默认属性。