首页 > 数据库 >【Azure Redis 缓存】Redisson 连接 Azure Redis出现间歇性 java.net.UnknownHostException 异常

【Azure Redis 缓存】Redisson 连接 Azure Redis出现间歇性 java.net.UnknownHostException 异常

时间:2022-08-18 21:12:22浏览次数:105  
标签:DefaultPromise netty java resolver Redis util io Azure

问题描述

在Java项目中,使用Redisson作为连接Redis的客户端,间歇性的出现了DNS Monitor throwable 错误。

DNSMonitor throwable="java.net.UnknownHostException: failed to resolve 'xxxxxx.redis.cache.chinacloudapi.cn' 

Redisson版本为:

org.redisson:redisson:3.12.0

全部的异常信息为:

level=ERROR logger=org.redisson.connection.DNSMonitor throwable="java.net.UnknownHostException: failed to resolve 'xxxxxx.redis.cache.chinacloudapi.cn' after 2 queries 
       at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:901)
       at io.netty.resolver.dns.DnsResolveContext.tryToFinishResolve(DnsResolveContext.java:860)
       at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:328)
       at io.netty.resolver.dns.DnsResolveContext.access$600(DnsResolveContext.java:63)
       at io.netty.resolver.dns.DnsResolveContext$2.operationComplete(DnsResolveContext.java:377)
       at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:502)
       at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:495)
       at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:474)
       at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:415)
       at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:540)
       at io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:533)
       at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:114)
       at io.netty.resolver.dns.DnsQueryContext.setFailure(DnsQueryContext.java:220)
       at io.netty.resolver.dns.DnsQueryContext.access$300(DnsQueryContext.java:43)
       at io.netty.resolver.dns.DnsQueryContext$4.run(DnsQueryContext.java:170)
       at io.netty.util.concurrent.PromiseTask$RunnableAdapter.call(PromiseTask.java:38)
       at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:127)
       at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
       at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:405)
       at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
       at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:906)
       at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
       at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
       at java.lang.Thread.run(Thread.java:748)
Caused by: io.netty.resolver.dns.DnsNameResolverTimeoutException: [/8.8.4.4:53] query timed out after 5000 milliseconds (no stack trace available)
" thread=redisson-netty-4-21 message="Unable to resolve xxxxxx.redis.cache.chinacloudapi.cn" fluentd=517d053c90c2 tag=logback.aliClient.10.218.192.150

 

问题分析

根据错误提示,在Github上找到 Redisson 和 Netty 都存在相似的问题。最后都建议升级 Redisson 版本到最新,同时也把 Netty 的版本升级到最新。

Regression: DNS resolver failing to find valid DNS record :https://github.com/redisson/redisson/issues/1625

DNS resolver failing to find valid DNS record : https://github.com/netty/netty/issues/8261

如果升级比较复杂的话,也可以将redisson的dnsMonitoringInterval参数设置为-1。

 

参考资料

Regression: DNS resolver failing to find valid DNS record : https://github.com/redisson/redisson/issues/1625

DNS resolver failing to find valid DNS record : https://github.com/netty/netty/issues/8261

 

[END]

 

 

标签:DefaultPromise,netty,java,resolver,Redis,util,io,Azure
From: https://www.cnblogs.com/lulight/p/16600123.html

相关文章

  • 初识JAVA
    初识JAVA Java诞生C语言1972年指针,内存管理C++1982年兼容C语言java1995年语法像,无指针内存管理,可移植,高性能版本包含SE标准版(桌面,控制台) 基础ME嵌......
  • JavaSE:第二章:变量与运算符
    史上最全的知识体系脑图,覆盖所有知识点,所有细节,注意事项。变量与运算符:包含关键字,保留字,标识符,变量,运算符。更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44......
  • 10.java NIO核心2:通道(Channel)
    publicinterfaceChannelextendClonseable{}. 写案例:@Testpublicvoidwrite(){try{//1.字节输出流到目标文件......
  • 解决Java前后端跨域问题
    在后端解决在springboot项目的包目录下创建一个config包在包里新建一个CorsConfig类:packagecom.liu.springboot.config;importorg.springframework.context.annotat......
  • java使用秘钥加密密码
    对称加密什么是对称加密对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥(miyao)一起经过特殊加密算法处理后,使其变成复......
  • JavaSE:第三章:程序流程控制
    史上最全的知识体系脑图,覆盖所有知识点,所有细节,注意事项。流程控制:包含顺序结构,分支结构,循环结构,break,continue,return,部分代码了解。更多内容请见原文,原文转载自:https://......
  • redis-golang strings 操作
    本文来自于  github.com/go-redis/redis/v9的自带的测试代码commands_test1、Append(ctxcontext.Context,key,valuestring)//如果不存在key,就将keyval......
  • Redis - Persistence
    • RDB(RedisDatabase):TheRDBpersistenceperformspoint-in-timesnapshotsofyourdatasetatspecifiedintervals.• AOF(AppendOnlyFile):TheAOFpersis......
  • Java开发学习(二十六)----SpringMVC返回响应结果
    SpringMVC接收到请求和数据后,进行了一些处理,当然这个处理可以是转发给Service,Service层再调用Dao层完成的,不管怎样,处理完以后,都需要将结果告知给用户。比如:根据用户ID查......
  • java基础01
    注释单行注释://注释内容多行注释:/*(回车)​注释​*/文档注释:/**​*可执行的注释​......