You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

切换至quarkus-rest-client-reactive后如何处理默认DNS警告

问题场景

将quarkus-rest-client替换为quarkus-rest-client-reactive后,出现如下警告:

WARN [io.net.res.dns.DefaultDnsServerAddressStreamProvider] (Quarkus Main Thread) Default DNS servers: [/8.8.8.8:53, /8.8.4.4:53] (Google Public DNS as a fallback)

已知该警告与Quarkus 2.7版本因安全原因默认禁用JNDI的变更相关,需解决两个问题:

  1. 保留安全措施的前提下,如何消除或降低该警告级别?
  2. 部署到无互联网访问的集群时应用会失败吗?

环境:Java 11,Quarkus 2.12.3.Final


解决方案

一、处理警告(保留安全设置)

以下两种方式均不会改动JNDI禁用的安全配置:

1. 降低目标日志级别

在application.properties中添加配置,将该日志类的级别从WARN调整为INFO或更低(如OFF),直接屏蔽警告输出:

quarkus.log.category."io.netty.resolver.dns.DefaultDnsServerAddressStreamProvider".level=INFO

2. 指定集群内部DNS服务器

配置应用使用集群内可用的DNS服务器,避免Netty触发Google Public DNS的 fallback逻辑,警告会自然消失。在application.properties中添加:

quarkus.rest-client-reactive.dns.servers=你的内部DNS地址:53

示例(假设集群DNS为10.96.0.10:53):

quarkus.rest-client-reactive.dns.servers=10.96.0.10:53

二、无互联网集群部署的失败风险

是否失败取决于应用的网络需求:

  • 如果应用不需要发起任何外部REST调用:即使无互联网,应用也能正常启动,最多保留未处理的警告,不会导致启动或运行失败。
  • 如果应用需要调用外部服务:未配置内部DNS时,Netty会尝试使用Google Public DNS,但因无互联网无法解析域名,会导致REST调用抛出DNS解析异常。此时必须配置集群内部可用的DNS服务器,才能保证服务正常调用。

内容的提问来源于stack exchange,提问作者gian1200

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 20:45:31