最近查看服务器日记是不是报发现有台服务器报错:
rocessing failed; nested exception is org.springframework.data.redis.RedisSystemException: Unknown redis exception; nested exception is java.util.concurrent.RejectedExecutionException: event execu tor terminated] with root cause
从上图中发现错误:
1 Unknown redis exception;
未知redis错误,先看看redis的服务是正常,看redis数据库日记(默认位置:/var/log/redis/redis.log)也没有发现有错误,与redis服务无关。
打开redis日记,显示正常如下图:
执行info指令查看redis服务状态也未有异常,如下图:
2 event execu tor terminated;
执行器终止,说起执行器很容易让人联想到线程池,再仔细查看了一下错误代码,发现event execu tor terminated后4行是在线程池报出,再结合报错的代码只是获取get key的值 部分是个循环,这就不难分析出很可以配置的线程太小。
查看配置文件,果然发现最大只有8个,结合当前系统的业务相关操作redis量,这个确实太小:
修正后的配置:
redis:
host: 127.0.0.1
password: 123456
port: 6379
jedis:
pool:
max-active: 400
max-wait: 500ms
max-idle: 200
min-idle: 100
database: 2
经过一段时间观察,一切恢复正常。