SSR限流降级方案-服务器实现

一、ssr限流降级需求

1、正常情况下用户访问web ssr服务

2、ssr负载过高(访问超时、5xx错误等)的情况下,用户访问csr服务。

3、ssr服务处理能力有限,经过性能测试得出ssr服务入口api的tps上限,请求量达到上限后请求转发到csr服务,整个过程用户无感知。

二、实现方式

1、istio envoy-filter通过令牌桶实现限流,达到流量上限后返回429,ssr服务异常返回503。

2、通过kong plugin来实现http状态码捕获和请求转发。Kong plugin捕获429、503等异常状态码后重新请求csr对应path并将结果返回给用户。 

三、流程图

四、web实施

1、有两个提供相同前端功能的web服务ssr和csr

2、ssr和csr服务的paths需要能区分开,不能完全一致,这样kong网关在做route配置时才能区分开,如:

    /_next/plp/ssr/_next/static/chunks/874.5bc7a9391fa44bda.js

/_next/plp/csr/_next/static/chunks/874.5bc7a9391fa44bda.js

3、确定需要限流的入口api,以及ssr和csr对应的path。

4、确定入口api响应后浏览器发起的子请求,子请求path最好有统一的前缀,kong网关根据前缀设置route。 

五、Kong实施

1、设置ssr和csr的upstream,并配置好target。

2、设置ssr的service,并配置upstream。

3、ssr service中为入口api添加route,对该route开启mik-service-failover插件,设置插件中的各项值。

六、istio实施

1、将需要限流的ssr服务名称、环境、api、目标tps等信息发给devops同事。

2、Devops同事完成相关的配置更新。 

七、验证

1、对限流的api进行压测,istio开启限流,不开启kong插件,部分请求返回429;开启kong插件,接口不会再有429状态码返回,tps和成功率明显高于kong插件开启前。

2、压测过程中,通过浏览器访问压测的api,多刷新几次会发现有时子请求访问的是ssr,有时子请求访问的是csr。

3、通过查看gcp日志验证,后续补充。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值