承接上一章,我们已经梳理出来,哪些应用、接口,出现了性能或稳定性问题,这一章从整体思路上进行探讨解决。
一、高并发
按照先硬件后软件,先整体后局部治理思想,我们确定了如下方案:
先环境治理 ,再对流量进行有策略的切片,最后治理代码和组件
1.1 运行环境优化
运行环境,是应用的骨骼,所以运行环境的选择与配置至关重要。(硬件服务器,不在我们本期讨论范畴)
根据服务要承担的压力,服务是计算密集型还是IO密集型,分别配置对应的JVM和TOMCAT。
代码框架的优化,也是我们需要考虑的。Java目前主流的框架是Spring cloud体系。
1.2 流量管控切片
如下图是流量的4个来源,如果设计不当,这4种来源的触发时机可能不可控。如图1(流量4种来源):
线上1、2流量经过了负载,管理端3、JOB4的流量虽然按照集群进行负载,但每次选择一台。假设3、4恰好都选择“商品-02”,而管理端在做大量导出,JOB在处理批量大任务。此时该应用服务就会压力过大,进而影响其他功能响应。
流量的切片治理,除了常规的流量分治见图2(流量分治),再分3个方面: