性能问答>有访问redis超时,请大家帮看下>
1回复
1年前

有访问redis超时,请大家帮看下


环境参数
  • 操作系统Linux
  • JDK版本JDK8
  • 内存32GB
  • CPU核数64
  • 操作系统位数64位

io.lettuce.core.RedisCommandTimeoutException: Command timed out after 1 second(s)
at io.lettuce.core.ExceptionFactory.createTimeoutException(ExceptionFactory.java:51)
at io.lettuce.core.LettuceFutures.awaitOrCancel(LettuceFutures.java:119)
at io.lettuce.core.cluster.ClusterFutureSyncInvocationHandler.handleInvocation(ClusterFutureSyncInvocationHandler.java:131)
at io.lettuce.core.internal.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:79)
at com.sun.proxy.$Proxy139.setnx(Unknown Source)
at com.xueqiu.infra.redis4.RedisClusterImpl$177.apply(RedisClusterImpl.java:2536)
at com.xueqiu.infra.redis4.RedisClusterImpl$177.apply(RedisClusterImpl.java:2533)
at com.xueqiu.infra.redis4.RedisClusterImpl.executeSync(RedisClusterImpl.java:683)
at com.xueqiu.infra.redis4.RedisClusterImpl.setnx(RedisClusterImpl.java:2533)
at com.xueqiu.fundx.core.common.redis.json.SimpleJsonRedisCluster4.setNx(SimpleJsonRedisCluster4.java:580)
at com.xueqiu.fundx.core.common.redis.json.RedisClusterFacade.lambda$setNx$81(RedisClusterFacade.java:585)
at com.xueqiu.fundx.core.common.redis.json.RedisClusterFacade.lambda$grayExecute$1(RedisClusterFacade.java:108)
at com.xueqiu.fundx.core.common.gray.service.SimpleMigrateService.applyMigrate(SimpleMigrateService.java:34)
at com.xueqiu.fundx.core.common.redis.json.RedisClusterFacade.grayExecute(RedisClusterFacade.java:103)
at com.xueqiu.fundx.core.common.redis.json.RedisClusterFacade.setNx(RedisClusterFacade.java:585)
at com.xueqiu.fundx.business.dao.UserInfoDao.getUserInfo(UserInfoDao.java:444)
at com.xueqiu.fundx.business.dao.UserInfoDao.selectByUid(UserInfoDao.java:94)
at com.xueqiu.fundx.business.dao.UserInfoDao$$FastClassBySpringCGLIB$$58b99156.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:746)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
at com.xueqiu.fundx.business.dao.UserInfoDao$$EnhancerBySpringCGLIB$$6fd8fab3.selectByUid(<generated>)
at com.xueqiu.fundx.business.fundorder.service.notify.TradeSmsService.getBasicInfo(TradeSmsService.java:160)
at com.xueqiu.fundx.business.fundorder.service.notify.TradeSmsService.getAutoInvestPayFailedInfoNew(TradeSmsService.java:812)
at com.xueqiu.fundx.business.fundorder.service.notify.FundNotifyService.processForAutoInvestRecordSerialNum(FundNotifyService.java:390)
at com.xueqiu.fundx.trade.consumer.msg.AutoInvestCheckFailedMsgConsumer.lambda$init$0(AutoInvestCheckFailedMsgConsumer.java:50)
at com.xueqiu.eventcenter.client.rabbitmq.receiver.RabbitPushEventReceiver$1.handleDelivery(RabbitPushEventReceiver.java:74)
at com.rabbitmq.client.impl.ConsumerDispatcher$5.run(ConsumerDispatcher.java:149)
at com.rabbitmq.client.impl.ConsumerWorkService$WorkPoolRunnable.run(ConsumerWorkService.java:100)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
]

2419 阅读
请先登录,再评论

超时的异常根据线程dump文件分析基本上看不出来,不过看你这个错误栈,应该是redis连接池lettuce存在问题,你换一个连接池试试,或者先调大超时时间看看

1年前