UnknownHostException:从Jedis切换到Redisson后的6个查询后,无法解析“ my-redis-host”

问题描述

从Jedis切换到Redisson后,我遇到了一个类似的问题

我从提到的问题的评论中尝试了所有解决方案和解决方法,但是我仍然遇到

     [java] 20:46:08.537 ERROR [main] o.s.web.context.ContextLoader (ContextLoader.java:313): Context initialization Failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'MyRedissonConnectionFactory': Invocation of ini
t method Failed; nested exception is java.net.UnkNownHostException: Failed to resolve 'my-redis-host' after 6 queries
     [java]     at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:160)
     [java]     at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapablebeanfactory.java:416)
     [java]     at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.initializeBean(AbstractAutowireCapablebeanfactory.java:1788)
     [java]     at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.doCreateBean(AbstractAutowireCapablebeanfactory.java:595)
     [java]     at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.createBean(AbstractAutowireCapablebeanfactory.java:517)
     [java]     at org.springframework.beans.factory.support.Abstractbeanfactory.lambda$doGetBean$0(Abstractbeanfactory.java:323)
     [java]     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
     [java]     at org.springframework.beans.factory.support.Abstractbeanfactory.doGetBean(Abstractbeanfactory.java:321)
     [java]     at org.springframework.beans.factory.support.Abstractbeanfactory.getBean(Abstractbeanfactory.java:202)
     [java]     at org.springframework.beans.factory.support.DefaultListablebeanfactory.preInstantiateSingletons(DefaultListablebeanfactory.java:879)
     [java]     at org.springframework.context.support.AbstractApplicationContext.finishbeanfactoryInitialization(AbstractApplicationContext.java:878)
     [java]     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)
     [java]     at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:401)
     [java]     at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:292)
     [java]     at org.springframework.web.context.ContextLoaderListener.contextinitialized(ContextLoaderListener.java:103)
     [java]     at org.eclipse.jetty.server.handler.ContextHandler.callContextinitialized(ContextHandler.java:890)
     [java]     at org.eclipse.jetty.servlet.ServletContextHandler.callContextinitialized(ServletContextHandler.java:558)
     [java]     at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:853)
     [java]     at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:370)
     [java]     at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1497)
     [java]     at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1459)
     [java]     at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:785)
     [java]     at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:287)
     [java]     at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:545)
     [java]     at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
     [java]     at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138)
     [java]     at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
     [java]     at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
     [java]     at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
     [java]     at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138)
     [java]     at org.eclipse.jetty.server.Server.start(Server.java:419)
     [java]     at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:108)
     [java]     at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
     [java]     at org.eclipse.jetty.server.Server.doStart(Server.java:386)
     [java]     at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
     [java]     at my.WebAppRunner.startServer(WebAppRunner.java:127)
     [java]     Main.main(Main.java:63)
     [java] Caused by: java.net.UnkNownHostException: Failed to resolve 'my-redis-host' after 6 queries
     [java]     at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:925)
     [java]     at io.netty.resolver.dns.DnsResolveContext.tryToFinishResolve(DnsResolveContext.java:884)
     [java]     at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:356)
     [java]     at io.netty.resolver.dns.DnsResolveContext.onResponse(DnsResolveContext.java:519)
     [java]     at io.netty.resolver.dns.DnsResolveContext.access$400(DnsResolveContext.java:64)
     [java]     at io.netty.resolver.dns.DnsResolveContext$2.operationComplete(DnsResolveContext.java:400)
     [java]     at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:577)
     [java]     at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:570)
     [java]     at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:549)
     [java]     at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:490)
     [java]     at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:615)
     [java]     at io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:604)
     [java]     at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:104)
     [java]     at io.netty.resolver.dns.DnsQueryContext.trySuccess(DnsQueryContext.java:201)
     [java]     at io.netty.resolver.dns.DnsQueryContext.finish(DnsQueryContext.java:193)
     [java]     at io.netty.resolver.dns.DnsNameResolver$DnsResponseHandler.channelRead(DnsNameResolver.java:1217)
     [java]     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
     [java]     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
     [java]     at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
     [java]     at io.netty.handler.codec.MessagetoMessageDecoder.channelRead(MessagetoMessageDecoder.java:102)
     [java]     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
     [java]     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
     [java]     at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
     [java]     at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
     [java]     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
     [java]     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
     [java]     at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
     [java]     at io.netty.channel.nio.AbstractNioMessageChannel$NioMessageUnsafe.read(AbstractNioMessageChannel.java:93)
     [java]     at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714)
     [java]     at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650)
     [java]     at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576)
     [java]     at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
     [java]     at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
     [java]     at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
     [java]     at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
     [java]     at java.lang.Thread.run(Thread.java:745)
     [java]
     [java] 20:46:08.606 WARN [main] o.e.jetty.webapp.WebAppContext (WebAppContext.java:554): Failed startup of context o.e.j.w.WebAppContext@19f1f330{/,} org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'myRedissonConnectionFactory': Invocation of init method Failed; nested except
ion is java.net.UnkNownHostException: Failed to resolve 'my-redis-host' after 6 queries
     [java]     at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:160)
     [java]     at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapablebeanfactory.java:416)
     [java]     at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.initializeBean(AbstractAutowireCapablebeanfactory.java:1788)
     [java]     at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.doCreateBean(AbstractAutowireCapablebeanfactory.java:595)
     [java]     at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.createBean(AbstractAutowireCapablebeanfactory.java:517)
     [java]     at org.springframework.beans.factory.support.Abstractbeanfactory.lambda$doGetBean$0(Abstractbeanfactory.java:323)
     [java]     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
     [java]     at org.springframework.beans.factory.support.Abstractbeanfactory.doGetBean(Abstractbeanfactory.java:321)
     [java]     at org.springframework.beans.factory.support.Abstractbeanfactory.getBean(Abstractbeanfactory.java:202)
     [java]     at org.springframework.beans.factory.support.DefaultListablebeanfactory.preInstantiateSingletons(DefaultListablebeanfactory.java:879)
     [java]     at org.springframework.context.support.AbstractApplicationContext.finishbeanfactoryInitialization(AbstractApplicationContext.java:878)
     [java]     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)
     [java]     at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:401)
     [java]     at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:292)
     [java]     at org.springframework.web.context.ContextLoaderListener.contextinitialized(ContextLoaderListener.java:103)
     [java]     at org.eclipse.jetty.server.handler.ContextHandler.callContextinitialized(ContextHandler.java:890)
     [java]     at org.eclipse.jetty.servlet.ServletContextHandler.callContextinitialized(ServletContextHandler.java:558)
     [java]     at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:853)
     [java]     at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:370)
     [java]     at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1497)
     [java]     at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1459)
     [java]     at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:785)
     [java]     at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:287)
     [java]     at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:545)
     [java]     at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
     [java]     at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138)
     [java]     at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
     [java]     at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
     [java]     at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
     [java]     at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138)
     [java]     at org.eclipse.jetty.server.Server.start(Server.java:419)
     [java]     at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:108)
     [java]     at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
     [java]     at org.eclipse.jetty.server.Server.doStart(Server.java:386)
     [java]     at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
     [java]     at my.WebAppRunner.startServer(WebAppRunner.java:127)
     [java]     at my.Main.main(Main.java:63)
     [java] Caused by: java.net.UnkNownHostException: Failed to resolve 'my-redis-host' after 6 queries
     [java]     at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:925)
     [java]     at io.netty.resolver.dns.DnsResolveContext.tryToFinishResolve(DnsResolveContext.java:884)
     [java]     at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:356)
     [java]     at io.netty.resolver.dns.DnsResolveContext.onResponse(DnsResolveContext.java:519)
     [java]     at io.netty.resolver.dns.DnsResolveContext.access$400(DnsResolveContext.java:64)
     [java]     at io.netty.resolver.dns.DnsResolveContext$2.operationComplete(DnsResolveContext.java:400)
     [java]     at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:577)
     [java]     at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:570)
     [java]     at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:549)
     [java]     at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:490)
     [java]     at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:615)
     [java]     at io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:604)
     [java]     at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:104)
     [java]     at io.netty.resolver.dns.DnsQueryContext.trySuccess(DnsQueryContext.java:201)
     [java]     at io.netty.resolver.dns.DnsQueryContext.finish(DnsQueryContext.java:193)
     [java]     at io.netty.resolver.dns.DnsNameResolver$DnsResponseHandler.channelRead(DnsNameResolver.java:1217)
     [java]     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
     [java]     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
     [java]     at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
     [java]     at io.netty.handler.codec.MessagetoMessageDecoder.channelRead(MessagetoMessageDecoder.java:102)
     [java]     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
     [java]     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
     [java]     at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
     [java]     at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
     [java]     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
     [java]     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
     [java]     at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
     [java]     at io.netty.channel.nio.AbstractNioMessageChannel$NioMessageUnsafe.read(AbstractNioMessageChannel.java:93)
     [java]     at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714)
     [java]     at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650)
     [java]     at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576)
     [java]     at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
     [java]     at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
     [java]     at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
     [java]     at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
     [java]     at java.lang.Thread.run(Thread.java:745)

我的配置如下:

String host = "my-redis-host";
int port = 6379;
Config config = new Config();
config.useSingleServer()
        .setAddress(String.format("redis://%s:%s",host,port))
        .setPassword("password");

RedissonClient redissonClient = Redisson.create(config);
return new RedissonConnectionFactory(redissonClient);

docker-compose文件中的服务定义:

my-redis-host:
   image: 'bitnami/redis:latest'
   hostname: redis
   container_name: contaner_my-redis-host
   environment:
     - REdis_PASSWORD=password
   ports:
     - '6379:6379'

版本:

compile group: 'org.redisson',name: 'redisson-spring-data-21',version: '3.12.0'
compile group: 'io.netty',name: 'netty-common',version: '4.1.47.Final'

我怎么了?如何解决

解决方法

确保您的本地dns能够正确解析my-redis-host