一、该问题的重现步骤是什么?
1. 并发压力测试下通过记录各段代码执行时间,发现登录中的创建token方法耗时异常,超过了10000ms
2. 已将调整为无状态,理论上和redis无关
3.
二、你期待的结果是什么?实际看到的又是什么?
耗时正常
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
springboot版 2.8.2
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
已经测试,token生成的时间较长
那就只能着手于减少token的字段或者重写token生成逻辑了。
减少字段的话,可以只保留userId,但是相应的前端后端都需要修改一下,比如后端获取其他信息的时候,不能直接从token解析获取了,需要先通过userId获取User信息,然后再放到redis,从redis获取其他的比如deptId、roleId等字段。前端获取deptId、roleId的时候需要单独再调用一个接口,返回后把数据缓存到vuex内。
如果重写token生成逻辑,这个还是比较难的,相当于去优化jjwt依赖的底层源码了。所以推荐上面的办法。
扫一扫访问 Blade技术社区 移动端