Java峰值和削峰_架构设计之流量削峰

前言

针对于秒杀场景来说,流量往往在一个特定时间点有个高度集中的流量洪峰,这个瞬时对于资源的消耗是很大的,这时往往对于服务的稳定性带来了极大的挑战,如果按照流量洪峰预估系统资源,则可能存在极大的资源浪费。

所以协调好处理流量洪峰和资源利用率,最好的方式就是设计错峰方案进行流量削峰。

削峰目的:

让服务处理请求更加平缓,节省服务器资源。

针对于削峰来说,本质上是延缓用户请求的发送,减少和过滤一些无效请求。

一般采用以下方式:

排队

答题

分层过滤

这几种方案都是无损的,当然有损的方案如限流,负载保护等,是另一种不得已的措施,以后再谈。

排队

流量削峰首先想到的就是队列,将同步的请求转换成异步请求,将流量峰值通过消息队列平缓推送过去。

83a657ae69368166c7b5ee998ac67e5a.png

当然消息队列需要注意的是消息挤压和存储上限等情况。

类似的排队方式还有很多,如:

线程池加锁

先进先出内存队列

类似于binlog的顺序写读处理的机制

答题

一般的电商系统秒杀时会有一个答题流程,主要是为了增加购买的复杂度,首先可以防止一些机器参与秒杀的场景,起到防止作弊的目的。还可以拉大请求时间缓解请求,控

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值