“优速智能客服”项目遇到的影响项目性能的几个因素

阅读: 评论:0

“优速智能客服”项目遇到的影响项目性能的几个因素

“优速智能客服”项目遇到的影响项目性能的几个因素

之前做的都是传统行业的项目,对性能要求极低,所以对项目的运行速度也不是很关注。但是最近为优速物流做了一个“优速智能客服”项目,由于数据量较大、并发量较大,所以对项目性能产生了极大的考验。现将整个项目关于性能部分的优化经验做个简单的记录:

背景:

1、优速项目全国几万个网点,大约都集中在早上8-10点登录,进行问题件处理

2、优速客服部门(主要为呼叫中心)对项目的响应时间要求极高,分秒必争

3、优速项目大约每天会产生30w的问题件,一个月大约1000W,数据保留三个月大约3000W数据量

浅显的经验:

1、工单编码冲突问题:每条工单对应一个编码,我们将编码放在redis缓存中,每次用的时候取出来,然后在此基础上加1作为新的编码使用,并将新的编码存在缓存中做记录以便下次使用,并发量小的时候,这种方案还可以,当并发量增大时,就会出现编码冲突的问题,但是加同步锁又会影响性能,所以最终确定的解决方案是,利用redis原生的自增方法incr,每次incr后,编码由redis自动加1;(切记:jedis使用后一定要关闭,否则连接数使用完之后,会导致系统瘫痪)代码如下:

 

2、HttpClient接口调用不稳定问题:项目中第三方接口我们是使用Httpclient调用的,结果上线后发现接口请求会越来越慢,有时候会直接出现数据加载不出来的现象,导致部分功能无法正常使用,最开始怀疑是第三方接口响应问题,后来日志验证发现不是第三方接口问题,而是随意请求次数的增加,每次调用响应时间都会变长,最终查资料发现:httpclient为线程安全的,所以再高并发使用时会出现等待问题,当某次请求出现超时或者响应较长时,就会导致后面等待的也会响应增长,从而导致接口响应时长增加,我们最终通过增加HttpClient链接池的方式解决了这个问题,链接池部分代码如下:

HttpClient源码地址:

3、数据库操作相关的经验总结:

1、业务代码与数据库交互时,坚决不做多余的数据库操作

2、数据库常用的查询字段要建索引、尽量索引字段排序、尽量组合索引

3、关联表关联字段编码相同索引才会生效

4、like函数左侧不可加%否则索引会失效

5、多表大数据量组合查询可以使用子查询尽可能多的使索引生效

6、一张表索引不能太多

7、一张表字段不能太多

4、代码规范问题:

1、空指针判断,不对空指针判断,对于业务流程来说是毁灭性的,得不偿失,必须要做

2、Exception错误日志的打印方式&#(“错误”,e);代替e. printStackTrace();

3、类属性字段尽量使用序列化属性,像List用ArrayList代替、Map用HashMap代替

4、不要在非静态方法中给静态属性赋值

5、扫描规范一定要在项目开始的时候定好,不然后面改很麻烦

 

本文发布于:2024-03-14 13:56:53,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/1710823149149697.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:几个   项目   客服   因素   性能
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23