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

文摘   2024-11-14 12:59   四川  

关注mikechen十余年BAT架构经验倾囊相授!


大家好,我是mikechen。

TPS是高并发非常重要的指标,是大型架构的必备技能,下面我就全面来详解TPS和高并发@mikechen


最新mikechen原创超30万字《阿里架构师进阶专题合集》和《大厂最全面试题及答案合集》,请关注本公众号【mikechen的架构笔记】,后台回复:合集,即可领取。

高并发

高并发,就是短时间内处理大量请求,比如:阿里的“双11”,每秒几十万的订单,这就是典型的高并发。

多少TPS算高并发

一般我们会用:数据来衡量“并发量”,这里非常重要的一个数据,就是“TPS”。

TPS,全程是:Transactions Per Second,翻译过来就是“每秒可以处理的事务数量”。

TPS 是评价高并发系统的重要指标之一,通常在:支付、订单处理、实时交易系统...等等中使用。

TPS,开源帮助开发人员、和运维人员,快速了解系统在高负载下的稳定性、和处理能力。

通常在行业中,大致可以将 TPS 标准粗略划分如下:

1,000 TPS 以下:低并发,一般系统都能应对;

1,000 - 5,000 TPS:中等并发,适用于小型电商、一般中型业务应用...等等;

5,000 - 10,000 TPS:高并发,适用于大型电商、金融交易系统...等对实时响应有较高要求的场景;

10,000 TPS 以上:超高并发,一般为互联网巨头、和高峰流量应用场景。

比如:刚才我谈到的阿里双11等场景,就是大型电商促销、秒杀活动...等,这类的并发量就是非常高。

为支持“10,000 TPS ”,或者更高的 TPS,系统通常会采用一些技术、和架构优化,比如:

数据优化

通过简化查询逻辑、减少 JOIN、避免不必要的排序、和分组操作,提升 SQL 执行效率。

分库分表

以及,大家经常熟知的“分库分表”,这些都是典型的数据优化方案。

分库分表,是应对数据库高并发、和大数据量的有效手段,特别适合在请求量、和数据规模增长时缓解数据库压力。

比如:将数据按一定规则,(如:用户 ID、订单 ID...等等)分散到多个数据库中。

再比如:用户表按照用户 ID 的范围...等等,拆分到不同数据库中。

事务拆分

对于需要较长时间处理的事务,拆分成多个小事务分批执行,减轻单个事务的负载。

这种拆分可减少锁的持有时间,降低死锁风险,提升并发能力。

例如:将批量处理拆成小批次操作,逐步提交,避免单次事务消耗过多资源。

缓存优化

引入缓存机制,(如: Redis、Memcached...等等),来减少对数据库的访问频率,加速数据响应。

缓存优化,这也是提升“TPS”的一大利器。

负载均衡

使用负载均衡器,比如:Nginx、HAProxy、LVS...等等,将请求分发至多台服务器,以降低单台服务器的压力。

这里的负载,就会涉及到具体的:负载均衡策略。

常见的,包含:

轮询(Round Robin)

按顺序分发请求,适合轻量应用;

最小连接数

将请求发往当前连接数最少的服务器,适合长连接场景;

权重轮询

根据服务器的性能设置权重,高性能服务器承担更多请求。

通过负载均衡,分散请求负载,减少系统瓶颈,从而,提升整体的 TPS。

流量削峰

将一些耗时任务,比如:订单处理、日志记录、邮件发送。。。等等,放入消息队列。

比如::Kafka、RocketMQ...等等中异步处理,实现“削峰填谷”。

削峰填谷,就是通过队列缓冲高峰期的请求,平滑系统负载。

结合这些技术手段可以有效地提升系统的 TPS,满足高并发场景下的需求。

以上


最后送大家一个福利:

送我原创超30万字阿里架构师进阶专题合集


以及给大家整理最全大厂Java面试题及答案详解,包含:Java、多线程、JVM、Spring、MySQL、Redis、中间件...等必考题答案详解。


需要以上架构专题&面试答案的同学,加我微信即可领取!


添加时备注:资料


mikechen的架构笔记
十余年BAT架构经验倾囊相授!
 最新文章