spring session cpu占用过高
2024-09-01 08:58:39
集成spring session很简单,只需几行代码即可。
@Configuration
@EnableRedisHttpSession
public class SessionConfig {
@Value("${redis.host}")
private String host;
@Value("${redis.port}")
private Integer port;
@Value("${redis.database}")
private Integer database;
@Bean
public RedisConnectionFactory jedisConnectionFactory() {
JedisConnectionFactory factory = new JedisConnectionFactory();
factory.setHostName(host);
factory.setDatabase(database);
factory.setPort(port);
factory.setTimeout(10000);
return factory;
}
}
但请注意,使用EnableRedisHttpSession的默认配置,有可能造成cpu占用过高。这是因为默认使用的是SimpleAsyncTaskExecutor,导致监听redis keyEvent事件时频繁创建线程,造成性能消耗。因此解决方案是定义线程池即可。
@Bean
public ThreadPoolTaskExecutor springSessionRedisTaskExecutor() {
ThreadPoolTaskExecutor springSessionRedisTaskExecutor = new ThreadPoolTaskExecutor();
springSessionRedisTaskExecutor.setCorePoolSize(8);
springSessionRedisTaskExecutor.setMaxPoolSize(16);
springSessionRedisTaskExecutor.setKeepAliveSeconds(10);
springSessionRedisTaskExecutor.setQueueCapacity(1000);
springSessionRedisTaskExecutor.setThreadNamePrefix("SESSION_TASK_EXEC");
return springSessionRedisTaskExecutor;
}
有关spring session的实现原因可参考文章:https://www.cnkirito.moe/spring-session-4/。
欢迎关注个人公众号
最新文章
- Android实现Banner界面广告图片循环轮播(包括实现手动滑动循环)
- Delphi XE的firemonkey获取当前文件所在路径的方法
- script ";text/template";
- 小白日记44:kali渗透测试之Web渗透-SqlMap自动注入(二)-sqlmap参数详解REQUEST
- gcc链接程序时出现undefined reference to";";错误
- Unity连接本地数据库sqlite
- 第11章 享元模式(Flyweight Pattern)
- Sass与Compress实战:第七章
- Java反射机制能够获取的信息,与应用
- 认识Java(2)
- MIDle生命周期详解,以及工作原理
- JarvisOJ Misc webshell分析
- 转)Ubuntu安装teamviewer
- redis 全局命令 查看所有的键,删除键,检查键是否存在,获取过期时间,键的数据结构类型
- iOS 拨打电话三种方式
- format格式
- flexible.js结合rem实现移动端自适应布局
- HDU 4739 Zhuge Liang's Mines (2013杭州网络赛1002题)
- System.loadLibrary()的使用方法汇总
- jquery操作select取值赋值与设置选中[转]
热门文章
- HAVING 搜索条件在进行分组操作之后应用
- 洛谷 P1432 倒水问题
- WAMP 3.1.0 APACHE 2.4.27 从外网访问
- NoSql数据库Redis系列(5)——Redis主从复制
- PyCharm虚拟环(Project Interpreter)手动安装第三方包图解教程
- 【转】git branch 命令查看分支、删除远程分支、本地分支
- Mxnet:以全连接层为例子自定义新的操作(层)
- Servlet 添加 Cookie 返回 500 的问题
- Linux_CentOS 内存、cpu、进程、端口、硬盘管理
- Python高级笔记(十)闭包