大厂面试问答题汇总分析--- 秒杀 / 限流 / 高并发

大厂面试---Redis面试题(含答案,相关知识点,面试考察次数统计)

大厂面试问答题汇总分析---数据库(索引-聚集/非聚集,事务,mySql, 锁)

大厂面试问答题汇总分析---网络安全类问题

大厂面试问答题汇总分析--- 秒杀 / 限流 / 高并发

【锁】的相关概念汇总

大厂面试问答题汇总分析---多线程问题

目录

1、如何进行限流?

1-1、合法性限流

1-2、基于负载限流

1-3、基于服务限流(重点)

算法限流 (重点)

计数限流

固定窗口限流算法

滑动窗口限流

漏桶算法 

令牌桶算法

限流算法相关结论

2、秒杀系统架构设计

3、业务分析

4、秒杀技术挑战

4-1、前端设计方案

4-2、后端设计方案

4-3、相关问题解决方案


1、如何进行限流?

限流的【本质】是为了不断地削减请求的数量

可参考:如何设计秒杀服务的限流策略? - 简书

1-1、合法性限流

区分【正常用户】 与【机器人/刷单用户】,通过验证码的方式(还可以拉长用户的访问时间);通过IP的方式,某个IP下的下单频率在毫秒级别 = 判定为不合法用户,还有一种方法是,隐藏秒杀入口地址。

作弊的手段:进攻与防守

1)同一个账号,一次性发出多个请求,应对方案:一个账号只允许接受1个请求。具体做法:通过Redis内存缓存服务,写入一个标志位(只允许1个请求写成功,结合watch的乐观锁的特性),成功写入的则可以继续参加。

2)多个账号【僵尸粉】,一次性发送多个请求,通过检测指定机器IP请求频率,如果发现某个IP请求频率很高,可以给它弹出一个验证码或者直接禁止它的请求

  • 1-弹出验证码,最核心的追求,就是分辨出真实用户
  • 2-直接禁止IP,实际上是有些粗暴的,因为有些真实用户的网络场景恰好是同一出口IP的,可能会有“误伤“

3)多个账号,不同IP发送不同请求

  • 跟真实用户区别不大,容易【误伤】
  • 通过设置业务门槛高来限制这种请求了
  • 通过账号行为的”数据挖掘“来提前清理掉它们
  • 【僵尸账户】账号很可能属于同一个号码段甚至是连号的,活跃度不高等级低,资料不全等

1-2、基于负载限流

  

软负载限流:

集群:  工具,Nginx(第七层-应用层) 和 LVS(第四层-传输层)

[Nginx  是一个高性能的HTTP反向代理web服务器 ] 

级联负载:  级联的做法也会同时增加请求的路径

<
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值