问题:项目启动后,redis可正常运行几分钟,之后就连接不上报超时。重启工程后又可用一段时间。请教各位大牛
1. 包版本:
springboot2.1.2.RELEASE
spring-boot-starter-data-redis2.1.2.RELEASE
2. pom.xml
3. redis配置类
4. 配置属性
5. 运行一段时间后报错内容
sdj-cashier-api_1 | 2019-06-19 16:14:21.132 ERROR 1 --- [nio-8080-exec-2] sAspect$$EnhancerBySpringCGLIB$$aa3608f3 : redis error
sdj-cashier-api_1 |
sdj-cashier-api_1 | org.springframework.dao.QueryTimeoutException: Redis command timed out; nested exception is io.lettuce.core.RedisCommandTimeoutException: Command timed out after 500 millisecond(s)
sdj-cashier-api_1 | at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:70)
sdj-cashier-api_1 | at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:41)
sdj-cashier-api_1 | at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:44)
sdj-cashier-api_1 | at org.springframework.data.redis.FallbackExceptionTranslationStrategy.translate(FallbackExceptionTranslationStrategy.java:42)
sdj-cashier-api_1 | at org.springframework.data.redis.connection.lettuce.LettuceConnection.convertLettuceAccessException(LettuceConnection.java:268)
sdj-cashier-api_1 | at org.springframework.data.redis.connection.lettuce.LettuceStringCommands.convertLettuceAccessException(LettuceStringCommands.java:799)
sdj-cashier-api_1 | at org.springframework.data.redis.connection.lettuce.LettuceStringCommands.get(LettuceStringCommands.java:68)
sdj-cashier-api_1 | at org.springframework.data.redis.connection.DefaultedRedisConnection.get(DefaultedRedisConnection.java:253)
sdj-cashier-api_1 | at org.springframework.data.redis.connection.DefaultStringRedisConnection.get(DefaultStringRedisConnection.java:377)
sdj-cashier-api_1 | at org.springframework.data.redis.core.DefaultValueOperations$1.inRedis(DefaultValueOperations.java:57)
sdj-cashier-api_1 | at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:59)
sdj-cashier-api_1 | at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:224)
sdj-cashier-api_1 | at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:184)
sdj-cashier-api_1 | at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:95)
sdj-cashier-api_1 | at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:53)
sdj-cashier-api_1 | at com.sdj.cashier.api.common.utils.RedisUtils.get(RedisUtils.java:63)
sdj-cashier-api_1 | at com.sdj.cashier.api.common.utils.RedisUtils.get(RedisUtils.java:71)
sdj-cashier-api_1 | at com.sdj.cashier.api.common.utils.RedisUtils$$FastClassBySpringCGLIB$$49de4bf5.invoke(<generated>)
sdj-cashier-api_1 | at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
sdj-cashier-api_1 | at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:749)
sdj-cashier-api_1 | at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
sdj-cashier-api_1 | at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)
sdj-cashier-api_1 | at com.sdj.cashier.api.common.aspect.RedisAspect.around(RedisAspect.java:30)
sdj-cashier-api_1 | at sun.reflect.GeneratedMethodAccessor90.invoke(Unknown Source)
sdj-cashier-api_1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
sdj-cashier-api_1 | at java.lang.reflect.Method.invoke(Method.java:498)
sdj-cashier-api_1 | at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)
sdj-cashier-api_1 | at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)
sdj-cashier-api_1 | at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)
sdj-cashier-api_1 | at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
sdj-cashier-api_1 | at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)
sdj-cashier-api_1 | at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
sdj-cashier-api_1 | at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
sdj-cashier-api_1 | at com.sdj.cashier.api.common.utils.RedisUtils$$EnhancerBySpringCGLIB$$fb9a0835.get(<generated>)
sdj-cashier-api_1 | at com.sdj.cashier.api.modules.app.interceptor.AuthorizationInterceptor.preHandle(AuthorizationInterceptor.java:90)
sdj-cashier-api_1 | at org.springframework.web.servlet.HandlerExecutionChain.applyPreHandle(HandlerExecutionChain.java:136)
sdj-cashier-api_1 | at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1033)
sdj-cashier-api_1 | at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
sdj-cashier-api_1 | at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
sdj-cashier-api_1 | at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:908)
sdj-cashier-api_1 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
sdj-cashier-api_1 | at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)
sdj-cashier-api_1 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
sdj-cashier-api_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
sdj-cashier-api_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
sdj-cashier-api_1 | at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
sdj-cashier-api_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
sdj-cashier-api_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
sdj-cashier-api_1 | at com.sdj.cashier.api.modules.app.filter.ChannelFilter.doFilter(ChannelFilter.java:44)
sdj-cashier-api_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
sdj-cashier-api_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
sdj-cashier-api_1 | at com.sdj.cashier.api.common.xss.XssFilter.doFilter(XssFilter.java:27)
sdj-cashier-api_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
sdj-cashier-api_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
sdj-cashier-api_1 | at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
sdj-cashier-api_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
sdj-cashier-api_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
sdj-cashier-api_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
sdj-cashier-api_1 | at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
sdj-cashier-api_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
sdj-cashier-api_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
sdj-cashier-api_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
sdj-cashier-api_1 | at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
sdj-cashier-api_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
sdj-cashier-api_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
sdj-cashier-api_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
sdj-cashier-api_1 | at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
sdj-cashier-api_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
sdj-cashier-api_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
sdj-cashier-api_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
sdj-cashier-api_1 | at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
sdj-cashier-api_1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
sdj-cashier-api_1 | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
sdj-cashier-api_1 | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
sdj-cashier-api_1 | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
sdj-cashier-api_1 | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
sdj-cashier-api_1 | at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
sdj-cashier-api_1 | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
sdj-cashier-api_1 | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
sdj-cashier-api_1 | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
sdj-cashier-api_1 | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
sdj-cashier-api_1 | at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
sdj-cashier-api_1 | at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
sdj-cashier-api_1 | at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)
sdj-cashier-api_1 | at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1417)
sdj-cashier-api_1 | at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
sdj-cashier-api_1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
sdj-cashier-api_1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
sdj-cashier-api_1 | at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
sdj-cashier-api_1 | at java.lang.Thread.run(Thread.java:748)
sdj-cashier-api_1 | Caused by: io.lettuce.core.RedisCommandTimeoutException: Command timed out after 500 millisecond(s)
sdj-cashier-api_1 | at io.lettuce.core.ExceptionFactory.createTimeoutException(ExceptionFactory.java:51)
sdj-cashier-api_1 | at io.lettuce.core.LettuceFutures.awaitOrCancel(LettuceFutures.java:114)
sdj-cashier-api_1 | at io.lettuce.core.FutureSyncInvocationHandler.handleInvocation(FutureSyncInvocationHandler.java:69)
sdj-cashier-api_1 | at io.lettuce.core.internal.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:80)
sdj-cashier-api_1 | at com.sun.proxy.$Proxy147.get(Unknown Source)
sdj-cashier-api_1 | at org.springframework.data.redis.connection.lettuce.LettuceStringCommands.get(LettuceStringCommands.java:66)
sdj-cashier-api_1 | ... 83 common frames omitted