线上压测、限流、降级的一般方法

1,线上压测:在线上环境抽取一台服务器,通过模拟回放或者直接引入多倍流量做压测,计算出单台服务器最大的可承载能力。

2,限流:在实际业务中,一般的业务服务器都部署在反向代理服务器(Ngnix)后面,一般情况下,Ngnix不会成为瓶颈,后端的应用服务器会由于各种原因(IO等待时间长、数据库慢、代码自身的缺陷等)成为瓶颈,所以主要是根据应用服务器的负载情况来计算一个阀值,如果超过这个值,则拒绝新的请求。常用的限流算法有二种:

1)漏桶算法:用于控制从本节点发出请求的速率

2)令牌桶算法:用于控制从外界发送到本节点的请求的速率

漏桶算法可以控制应用服务器发送请求到其它应用服务器的速率,确保一下稳定的速率 ,用于控制回调的洪峰,针对用户洪峰更适合令牌桶算法。如果无差别拒绝请求,会影响用户体验,所以要配合一定的策略:

1)通过防刷算法,拒绝疑似攻击的请求。通过用户识别码、IP、所在区域、上网特征等方式拒绝频繁访问的用户。

2)尽量不影响已服务用户的使用体验。可以给这些用户一个令牌,记录用户一些重要操作时间,在流量不够的情况下,优先放行具备访问令牌的用户。

3)尽量保证会员的体验

3,降级,大促期间并发业务很多,可以关闭部分非核心业务,保证主流程的能力最大化。

4,全链路压测,直接在生产环境上模拟复制大规模的流量,确保流量覆盖所有环节,再配合全流程监控工具,找到瓶颈点。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180308G0SSLE00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券