带你从0到1实现一个中间件-速率缓存中间件

✨这里是小松猿的博客✨小松,欢迎您的到来~✨

🍅系列专栏:无🍅

✈️本篇内容: 从0到1实现一个中间件-速率缓存中间件

🍱本篇收录完整代码地址:无🍱

楔子

灵感来自于一次线上事故,在一次秒杀活动开始之前,由于活动开始前没有对app各应用进行大规模的压测,只是进行了一些主要流程场景的压测。秒杀活动预约人数有9000多人,运维和高管都是在加机器,以为加机器就能扛过这一关,但是没有想到,应用会带来毁灭性的灾难。由于对于压测的结果觉得可以扛过这一次秒杀活动,基本上对所有接口都没有做缓存操作,只是在流量入口处使用sentinel做了限流(GTW网关),QPS值也是相当的大,设置的是2万,但是秒杀活动晚上一开始,app瞬间加死,还影响到了线下门店的业务(因为订单中心也被假死了)

这次事故的主要原因有两个:

1:第一点就是限流没有做好,太过理想化,在app加死期间对各应用作了限流,QPS在200左右,app逐渐恢复正常,说明各应用能承受的QPS只在几百以内,没有提前测出来这个阈值是不应该的

2:很多无关紧要的接口没有做缓存,而且还要访问db,这次事故的第二个主要原因就是DB连接不够,导致服务一直处于等待连接的状态,进而导致服务加死,最终导致app不可用,整个app处于加死状态,服务链路全崩

我就是站在这次事故的视角下思考了实时的解决这个问题,限流这方面已经有了sentine

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱敲代码的小松

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值