一、关于性能优化
性能优化这个词其实还是蛮火的,很多时候都会听很多人说过需要对系统进行优化,恰好自己经历过一个系统的优化周期,还算是有点小小的心得。我将自己的心得总结为7个字:缓存,异步,批处理。
二、缓存
缓存时性能优化的一大利器,说起缓存我们第一时间想到的就是redis.其实缓存分为本地缓存跟中央缓存,我将redis这种利用第三方进行的存储称为中央缓存。他在我们数据库查询,数据有效期保存,关键数据快速处理方面频繁应用。但是利用redis缓存时要考虑缓存命中率、缓存更新、数据一致性、缓存穿透及雪崩、Value过大等问题。Guava Cache 就是一种本地缓存,对于数据量非常小但调用频繁的数据我们可以用本地缓存。比如有些面板首页展示的指标数据。
三、异步
当我们系统要调用其他接口时可以不同步的尽量不要同步。此时我们可以用异步线程或消息队列来处理这些请求。比如当订单系统创建一个订单后需要把订单信息传给查单系统时,我们可以将订单数据放进MQ中,而不是直接接口传输。
四、批处理
批处理是指我们尽量进行一次批量处理动作,而不是频繁调取。比如可以通过mutiGet将多次请求合并一次去请求redis缓存,或者mysql数据库插入更新时进行批量处理。批处理还有一种情况就是在微服务中我们尽量调某个接口一次就获取我们需要的所有数据,而不是频繁调该接口。