重构系统的套路-提升并发能力

提升系统并发能力,总结起来有三点:异步,缓存,并行。redis

异步

好比咱们在某段业务逻辑中加了一个同步写kafka的操做,tp99瞬间多了30毫秒,这样在整个监控曲线看起来很是扎眼,因而咱们须要将这个同步改为异步。 对于老系统须要在业务进行梳理,若是业务场景中不关心返回值,这样彻底能够作成异步。 若是业务关心返回值,好比订单逻辑,不少下游服务须要传入本次主订单ID与下游服务进行链接,这样写主订单就必须变成了一个同步逻辑,可是主要关心的仍是这个OrderId,咱们能够创建一个OrderId生成器,这样单独的一个OrderId服务性能更好,能够将整个业务逻辑串起来。缓存

缓存

为了提高整个逻辑链路的响应时间,咱们应该将数据离访问更近,这样响应更快。 有了缓存,咱们可能产生某种依赖,将尽量多的数据放入缓存,而没有好好的进行梳理和分析。 这样缓存数据可能愈来愈大,内存成本愈来愈高,当一段促销形成的流量愈来愈大,若是没有进行合理的扩容,则会形成想不到的问题。 好比咱们的营销活动放到redis作缓存,每一个营销活动实际上是有不少聚合信息,而且每一个活动有失效期的,这样比较适合缓存场景的,可是某天产品同窗的运营策略变了,在双11咱们须要提早作一些预热,这样用户领取的优惠券的周期就变长了,若是简单的是放到了redis,其实总体的活动信息在高峰来时,原有的redis容量就形成了必定的性能影响。并发

并行

下游的服务咱们经过创建线程池,进行异步处理,因而咱们须要关心设置合理的线程池。 梳理系统的代码,将不少同步的for,while的循环改为基于Future的同步模型,提高总体并行度,达到必定的性能提高。异步

相关文章
相关标签/搜索