问题描述
从Jedis切换到Redisson后,我遇到了一个类似的问题
- https://github.com/redisson/redisson/issues/1693
- https://github.com/redisson/redisson/issues/1486
- https://github.com/redisson/redisson/issues/1646
- https://github.com/redisson/redisson/issues/1625
我从提到的问题的评论中尝试了所有解决方案和解决方法,但是我仍然遇到
[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