限流主要是针对非核心服务调用者进行的。ajax
原则上,大促核心链路上的服务都要配置限流,以避免大促期间的流量超过预估值把服务器压垮。
同时还要考虑出口限流,主要是对db的限流,配置一个读写总流,以免把服务器压垮。json
限流实现方式主要有两种:服务器
方法1的好处是简单,缺点是限流配置可能会分散到多个文件甚至bundle中。
方法2的好处是集中管理,缺点是须要限流的服务要专门引入一个新的serivce,之后每加一个限流内容这个servcie都要进行下修改。设计
两种方法各有优劣,各个系统可根据本身的业务特色进行配置。日志
限流处理的超量处理整体来讲有两种策略:xml
这两种策略的使用场景主要以下:对象
整体而言,超量以后执行指定动做要好于不作处理。接口
配置完成后,就须要进行验证了,验证的方式主要是看日志,经过日志看支付宝
一般而言,咱们配置的限流值要比平常的流量值大好几倍的,正常状况下不会触发限流的,于是要触发限流一般有两种方法:ci
经过查看日志能够知道单机的限流拦截状况,可是一个系统经过会部署上百台服务器,若是要了解整个系统的拦截状况,手工一台台查看然后相加的方式显示是不可取的。
在支付宝中强大的xflush,于是能够利用xflush配置对应的监控,经过监控一目了然了解整个集群的限流状况,主要是配置三个数据:
而后把这个数据配置到一张报表中,这样就能够方便的在一张报表中了解系统总体限流状况。