io.lettuce.core.protocol.CommandHandler - null Unexpected exception during request: java.io.IOException: 远程主机强迫关闭了一个现有的连接。 [0;39mjava.io.IOException: 远程主机强迫关闭了一个现有的连接。
一、报错信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | [0;39m[2022-08-10 19:47:33.673] [lettuce-nioEventLoop-4-1] [34m[INFO ] io.lettuce.core.protocol.CommandHandler - null Unexpected exception during request: java.io.IOException: 远程主机强迫关闭了一个现有的连接。 [0;39mjava.io.IOException: 远程主机强迫关闭了一个现有的连接。 at sun.nio.ch.SocketDispatcher.read0(Native Method) at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43) at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) at sun.nio.ch.IOUtil.read(IOUtil.java:192) at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) at io.netty.buffer.PooledUnsafeDirectByteBuf.setBytes(PooledUnsafeDirectByteBuf.java:288) at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1108) at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:628) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:563) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:480) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:442) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(Thread.java:745) [2022-08-10 19:47:35.141] [localhost-startStop-2] [34m[INFO ] o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - Closing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@117e9283: startup date [Thu Jul 28 19:47:20 CST 2022]; root of context hierarchy [0;39m[2022-08-10 19:47:35.719] [lettuce-eventExecutorLoop-1-2] [34m[INFO ] io.lettuce.core.protocol.ConnectionWatchdog - Reconnecting, last destination was localhost/127.0.0.1:6379 [0;39m[2022-08-10 19:47:37.203] [localhost-startStop-2] [34m[INFO ] o.s.context.support.DefaultLifecycleProcessor - Stopping beans in phase 2147483647 [0;39m[2022-08-10 19:47:37.500] [localhost-startStop-2] [34m[INFO ] o.s.jmx.export.annotation.AnnotationMBeanExporter - Unregistering JMX-exposed beans on shutdown [0;39m[2022-08-10 19:47:37.609] [localhost-startStop-2] [34m[INFO ] o.s.jmx.export.annotation.AnnotationMBeanExporter - Unregistering JMX-exposed beans |
二、原因
1 2 | 与Redis有关 io.lettuce.core.protocol.ConnectionWatchdog - Reconnecting, last destination was localhost/127.0.0.1:6379 |
三、解决方法
1、修改配置文件redis.windows.conf
1 | 参考:https: //blog.csdn.net/lxyoucan/article/details/124816647 |
1 2 3 4 5 | springboot 使用 lettuce做redis 的连接池,lettuce 调用netty 与redis服务器通讯。redis服务器的连接超时缺省是65,改为0后不再报上面的错。 客户端空闲 N 秒后关闭连接(0 表示禁用) timeout 0 |
2、检查redis的链接配置是否正确
1 | 参考:https: //www.codeleading.com/article/69143601144/ |
1 2 3 4 5 6 7 8 9 10 11 12 13 | redis: host: localhost port: 6379 password: abc123 database: 5 timeout: 60s ## springboot2.0之后将连接池由jedis改为lettuce lettuce: pool: max-idle: 30 max-active: 8 max-wait: 10000 min-idle: 10 |
同时在redis的配置文件redis.windows.conf中设置tcp-keepalive时间为60s(据说3.2.1默认为300),完成后重启redis
作者:生活这把杀猪刀
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
做人如果没有梦想,那根咸鱼有什么区别!!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性