java redis监听问题_解决Spring session(redis存储方式)监听导致创建大量redisMessageListenerContailner-X线程问题...

本文主要探讨了Spring session使用redis存储时,由于监听机制导致创建大量`redisMessageListenerContailner-X`线程的问题。通过添加自定义的`springSessionRedisTaskExecutor`线程池来避免频繁创建新线程,从而改善性能。同时分析了Spring session的源码,解释了如果没有自定义线程池,系统会默认使用`SimpleAsyncTaskExecutor`,这可能导致性能损耗和潜在的内存溢出风险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

待解决的问题

Spring session(redis存储方式)监听导致创建大量redisMessageListenerContailner-X线程

解决办法

为spring session添加springSessionRedisTaskExecutor线程池。

/**

* 用于spring session,防止每次创建一个线程

* @return

*/

@Bean

public ThreadPoolTaskExecutor springSessionRedisTaskExecutor(){

ThreadPoolTaskExecutor springSessionRedisTaskExecutor = new ThreadPoolTaskExecutor();

springSessionRedisTaskExecutor.setCorePoolSize(8);

springSessionRedisTaskExecutor.setMaxPoolSize(16);

springSessionRedisTaskExecutor.setKeepAliveSeconds(10);

springSessionRedisTaskExecutor.setQueueCapacity(1000);

springSessionRedisTaskExecutor.setThreadNamePrefix("Spring session redis executor thread: ");

return springSessionRedisTaskExecutor;

}

原因

在Spring Session(redis)的配置类源码中(RedisHttpSessionConfiguration):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值