13 | 用户登录:怎么判断线程中的Block原因?
高楼
你好,我是高楼。
用户登录说起来只是一个很普通的功能,不过它的逻辑一点也不简单。因为登录过程要对个人的信息进行对比验证,验证过程中又要调用相应的加密算法,而加密算法是对性能要求很高的一种功能。复杂的加密算法安全性高,但性能就差;不复杂的加密算法性能好,但安全性低,这是一个取舍的问题。
另外,还有 Session 存储和同步。对于个大型的系统来说,不管你在哪个系统访问,在调用其他系统时如果需要验证身份就要同步 Session 信息,并且在做业务时,我们也要把相应的 Session 信息带上,不然就识别不了。
你看,登录功能实际上会涉及到很多的业务,它其实一点也不简单。所以,这节课我会带着你好好分析用户登录功能,并带你了解在压力过程中业务逻辑链路和整体 TPS 之间的关系。同时,也希望你能学会判断线程中的 BLOCKED 原因。
修改加密算法
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了用户登录功能的性能优化过程,重点关注了加密算法选择和优化、缓存对性能的影响、业务逻辑链路分析以及整体TPS提升。作者通过改变加密算法和将用户加载到Redis中来提高性能,优化了缓存和登录逻辑,进一步提高了TPS。通过分析架构图和拆分时间,作者找出了响应时间消耗的瓶颈点,并进行了全局监控和定向监控。最后,作者从硬件资源和业务逻辑入手,优化了登录逻辑,提高了性能。整个过程展现了作者对性能优化的深入思考和分析方法,为读者提供了一种切实可行的优化思路和方法。文章通过具体案例和技术细节,为读者呈现了性能优化的实际操作过程,对于需要进行类似优化的技术人员具有一定的参考价值。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《高楼的性能工程实战课》,新⼈⾸单¥59
《高楼的性能工程实战课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(9)
- 最新
- 精选
- 继贤老师,堆栈分析工具用的是哪个?
作者回复: 我这里用的是IBM Thread and Monitor Dump Analyzer for Java。你也可以用其他工具,直接用文本看也是一样的。
2021-04-195 - 涵涵基准测试中将缓存全部直接加载,那容量测试中也会将缓存直接全部加载吗?直接加载缓存不是对测试结果有影响吗?
作者回复: 这部分在生产环境中也是应该先加载的。这也是预热的一个步骤。
2021-08-122 - 浅浅我们抓两段栈出来看一下,找一下锁之间的关系: 老师,这个是用什么抓取的呀?
作者回复: 这个用jstack、jvisualvm、spring boot admin、arthas,都可以抓呀。这个在前面的工具中已经罗列了哇。
2021-04-252 - jy老师,请问下,压测都是发请求到网关?为啥不是nginx呢?
作者回复: 都是发送到网关? 并没有说都发请求到网关呀。在k8s的架构中,如果配置了ngins-ingress,这是在每个node之上的。 如果在架构中网关是集群的并且前面也有nginx,就应该发到nginx上。
2021-07-291 - 公瑾想抓 BLOCKED 状态的线程,并且线程描述是“Waiting on monitor” --老师,是不是有阻塞的时候,先看block的线程是等待哪些锁,然后再去Waiting on monitor里查看是哪些线程持有这些锁(另外runnale的需要查看吗?)
作者回复: 对,就是查谁locked了锁。
2021-06-171 - udsmdd老师,服务的消耗时间是怎么算。
作者回复: apm里就可以看到,不用算哇。
2021-06-151 - 街角的风铃有项目源代码地址吗?,我想部署一下
作者回复: 在第二个专栏和第三个专栏的环境搭建文章中有链接。
2022-09-14归属地:北京3 - *回眸*·wdlcoke老师: 怎么加载缓存?
作者回复: 啥意思?是说在缓存中如何加载数据?还是说在代码中如何添加读取缓存的代码?
2021-12-30 - wfw123老师 打印栈的时候,是在脚本运行时候还是运行结束后呢
作者回复: 运动时。
2021-07-10
收起评论