TPS多少才算高并发(看这篇就够了)

TPS多少才算高并发(看这篇就够了)-mikechen

TPS多少才算高并发经常被问到,下面我就详解什么是高并发,以及TPS多少才算高并发@mikechen

什么是高并发

高并发:是指系统在同一时间能够处理大量请求、或任务的能力。

比如:在促销活动(如“阿里双十一”)时,瞬时会有大量用户同时下单、支付。

TPS多少才算高并发(看这篇就够了)-mikechen

比如:一秒处理60万笔订单的能力,这就是典型的“高并发”。

 

多少TPS算高并发

高并发,通常用一些指标来衡量系统的并发能力,比如:最核心的数据,就是TPS/秒。

TPS多少才算高并发(看这篇就够了)-mikechen

TPS,全程是Transactions Per Second,翻译过来就是“每秒事务处理数”,表示:系统每秒能够处理的事务量。

TPS是非常重要的,衡量系统高并发的能力,比如:刚才我谈到的“双11”,每秒接近60万/秒,这就是超高并发的场景。

通常,对于TPS衡量并发的数据指标如下:

TPS 在 1000-5000 之间,属于有一定的并发,TPS 超过 5000..,就可以算是高并发了。

如果TPS超过50,000以上,比如:阿里的60万/秒,就是典型的超高并发的场景了。

要想支撑这样的高并发场景,你就需要采用到很多技术,比如:分布式架构、负载、削峰…等常见的高并发技术方案。

分布式架构

为了支持高并发,系统都会进行分布式架构设计。

原因很简单,单机的处理能力始终有限,通过分布式架构设计,可以更好的扩展处理能力。

所以,分布式架构是高并发系统的基础,目的是将系统的负载分散到多个服务器节点,从而提高系统的扩展性、和可靠性。

比如:通过增加服务器数量来提升系统的并发处理能力,每台服务器可以独立处理部分流量。

微服务架构

以及,采用微服务架构,将大型单体应用,拆分成多个相互独立的服务。

比如:大家经常使用到的:SpringCloud、SpringCloudAlibaba..等,就是典型的微服务架构。

TPS多少才算高并发(看这篇就够了)-mikechen

每个服务都专注于特定的业务功能,通过轻量级的通信机制(如 :HTTP、RPC…等),与其他服务交互。

每个微服务,都可以根据流量情况水平扩展,(比如:通过增加服务实例的数量来应对增加的请求量),从而提升并发处理能力。

并且,采用微服务各个服务还可以独立部署、和扩展,从而减少耦合,提升并行能力。

 

缓存机制

缓存,就是通过减少数据库的直接访问来提高响应速度,降低服务器、和数据库的压力。

比如:大家使用最多的就是“分布式缓存”,用的最多的就是Redis。。。等分布式缓存系统。

TPS多少才算高并发(看这篇就够了)-mikechen

采用分布式缓存的原因也很简单,就是通过分布式集群的方式,可以更好的扩展性能。

当然,这里你也可以结合本地缓存来一起使用,这就是大家经常提到的多级缓存。

比如:某些情况下可以使用本地缓存(如 :Guava Cache。。。等),来缓存热点数据。

热点数据,指的就是:将频繁访问的数据(如:用户信息、商品详情…等)缓存在内存中,减少数据库的查询次数。

所以,核心就是把热点数据(用户访问最多的),缓存起来,这样可以提升并发量。

 

负载均衡

负载均衡,是一种将请求均匀分发到不同服务器的技术,以避免单台服务器过载。

比如:通过负载均衡器(如 :Nginx、HAProxy、LVS、F5。。。 等),将流量均匀地分发到多个服务实例。

TPS多少才算高并发(看这篇就够了)-mikechen

所以,负载均衡能够避免某个服务实例成为瓶颈,通过扩展,可以极大的提高系统的整体并发量。

常见的负载均衡策略有:

  • 轮询策略:依次将请求分发到不同的服务器上,确保每台服务器均匀地接收到请求;
  • 权重策略:根据服务器的性能设置不同的权重,比如:性能高的服务器分配更多的请求,就可以权重设置高点一点,能者多劳;
  • IP哈希:基于客户端的 IP 地址,将同一个 IP 的请求始终分发到同一台服务器,以实现会话保持。

 

流量削峰

流量削峰是应对高并发的常用手段,目的是平滑瞬时大量流量的冲击,避免系统过载。

TPS多少才算高并发(看这篇就够了)-mikechen

通过消息队列来削峰是最常用的手段之一,将请求进行排队处理,削减瞬时高并发的压力。

比如:当系统接收到大量请求时,先将这些请求放入消息队列(如 :Kafka、RocketMQ…等)。

这可以有效削减流量高峰,防止系统在瞬间被压垮,然后由消费者按设定的速率处理队列中的请求。

所以,削峰的核心思想,是将短时间内的高并发请求,有消息中间件来承受洪峰,从而减轻系统瞬间负载。

 

限流和熔断

在高并发场景下,限流和熔断机制是保护系统的重要措施,以防止系统在流量激增时崩溃。

比如:

限流

通过限制请求的速率,避免系统过载,常见的限流算法有:令牌桶算法、漏桶算法。

TPS多少才算高并发(看这篇就够了)-mikechen

可以通过 Nginx、Guava RateLimiter、Sentinel… 等工具实现限流。

熔断

当某个服务出现故障或响应过慢时,熔断机制可以临时中断该服务的请求,避免系统其他部分受到连带影响。

降级

根据系统负载情况,选择关闭一些非核心的服务或功能,降低系统整体的压力。

这些技术结合使用,能够显著提高系统在高并发场景下的性能和稳定性

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法