在大数据量高并发访问时,经常会出现服务或接口面对暴涨的请求而不可用的情况,甚至引发连锁反映导致整个系统崩溃。此时你需要使用的技术手段之一就是限流,当请求达到一定的并发数或速率,就进行等待、排队、降级、拒绝服务等。
一般解决高并发问题的时候有三种策略,缓存、降级和限流。
缓存比较简单,为了提高访问速度,因为从缓存中读取效率都比较高。比较常见场景就是后面挂一个mysql或者其他类型的db,然后中间嵌套一层redis缓存,有的甚至会加一层本地的二级缓存来进一步提高读写速度。缓存面临的问题是——数据一致性。
降级是为了保护更核心的服务,把一些没那么核心的服务停掉,等访问高峰期过了,或者相关系统问题解决之后再打开之前关闭的服务。
有些场景无法用上述两种手段来解决,比如稀缺资源——秒杀,抢购,比如写服务——评论,下单,频繁的复杂查询——评论的最后几页。解决上述类似问题可以采用限流的措施。
本文通过解读招行事业部King老师讲解的限流课程进行分享:
讲师简介:10余年Java行业经验。曾就职于招商银行互联网事业部、 58同城、互联网金融等行业,有丰富的大型项目设计与建设经验。 主要对分布式架构、微服务、数据安全等领域有深入的研究及改造经验。
高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。
高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。
响应时间:系统对请求做出响应的时间。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间。
吞吐量:单位时间内处理的请求数量。
QPS:每秒响应请求数。在互联网领域,这个指标和吞吐量区分的没有这么明显。
并发用户数:同时承载正常使用系统功能的用户数量。例如一个即时通讯系统,同时在线量一定程度上代表了系统的并发用户数。
有这几种方案,本文着重从限流方向讲解
五、为什么要限流
高并发系统常见的限流模式有这么几种。
限于篇幅原因,就分享到这里,喜欢的话,可以给我点个关注
【转发】+【关注】可以获取本节【详解高并发,亿级并发流量控制,分布式场景下的系统限流实战】的视频,记得转发关注之后私信我哦
留言与评论(共有 0 条评论) |