高并发场景下的限流策略

本文介绍了高并发场景下保护系统的限流和降级策略。限流用于防止恶意请求,通过滑动窗口协议、漏桶和令牌桶算法实现。降级则包括自动和人工降级,以确保服务高可用。文中还提到了Guava的RateLimiter以及使用MySQL、Redis和Nginx等技术进行限流的实践。
摘要由CSDN通过智能技术生成

高并发场景下的限流策略

性能调优是针对于代码本身的不规范性和系统资源的瓶颈的,当计算机的硬件资源达到瓶颈的时间已经无法调优了。高并发场景下一方面通过缓存,异步化,服务化,集群去增加整个系统的吞吐量,另一方面通过限流,降级来保护系统。

什么是限流和降级
在开发高并发系统时,有很多手段来保护系统:缓存、降级、限流。
缓存是为了解决访问热点数据的速度问题和低速IO部件与高速IO部件之间的差异性,从而提高系统的吞吐量。
降级是一种高可用的方式。当访问量快速增长、服务可能会出现一些问题(响应超时),或者会存在非核心服务影响到核心流程的性能时, 仍然需要保证服务的可用性,即便是有损服务。所以意味着我们在设计服务的时候,需要一些手段或者关键数据进行自动降级,或者配置人工降级的开关。缓存的目的是提升系统访问速度和增大系统处理的容量,可以说是抗高并发流量的银弹。
降级是当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉某些功能,等高峰或者问题解决后再打开;而有些场景并不能用缓存和降级来解决,比如秒杀、抢购;写服务(评论、下单)、频繁的复杂查询,因此需要一种手段来限制这些场景的并发/请求量。
降级
对于高可用服务的设计,有一个很重要的设计,那就是降级。降级一般有几种实现手段,自动降级和人工降级。

  1. 应用层通过配置降级开关,实现对流程的控制,即把一些公共代码放在配置中心上,由具体的模块去连接配置中心,在代码中通过如if,else去判断配置中心的开关是on,off,去执行相应的代码流
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值