对于双十一,优惠券、补贴金、满减是“买买买人”的噩梦,高并发、高性能、高可用也是技术人的魔咒。双十一秒杀时几万人抢同一个商品,直播间几十万人同时抢红包,每秒订单高达 58 万笔,在双十一大促活动当天,如何保证流量激发的时候不宕机?本篇文章将揭秘如何基于云平台来构建高可用的互联网应用。
什么是高并发、高性能、高可用
高并发(High Concurrency)
高并发是如今互联网分布式系统架构设计必须要考虑的因素之一,能够保证系统同时并行处理很多请求。高并发意味着大流量,需要运用技术手段抵抗流量的冲击,这些手段好比操作流量,能让流量更平稳地被系统所处理,带给用户更好的体验。高并发相关常用的一些指标有响应时间(Response Time)、吞吐量(Throughput)、每秒查询率 QPS(Query Per Second)、每秒事务处理量 TPS(Transaction Per Second)、并发用户数等。
-
响应时间(Response Time):系统对进来的请求反应的时间,比如你打开一个页面需要 1 秒,那么这 1 秒就是响应时间。
-
吞吐量(Throughput):吞吐量是指每秒能处理多少请求数量,好比你吃饭,每秒能吃下多少颗米饭。
-
每秒查询率 QPS(Query Per Second:秒查询率是指每秒响应请求数,和吞吐量差不多。
-
每秒事务处理量 TPS(Transaction Per Second):每秒响应事务请求数。
-
并发用户数:同时承载正常使用系统功能的用户数量。例如一个即时通讯系统,同时在线量一定程度上代表了系统的并发用户数。
高性能(High Performance)
什么是高性能呢?高性能是指程序处理速度非常快,所占内存少、CPU 占用率低。高性能的指标经常和高并发的指标紧密相关,想要提高性能,那么就要提高系统高并发能力,两者互相捆绑在一起。应用性能优化的时候,对于计算密集型和 IO 密集型还是有很大差别,需要分开来考虑。还有可以增加服务器的数量、内存、IO 等参数提升系统的并发能力和性能,但不要浪费资源,要考虑硬件的使用率最高才能发挥到极致。怎么样提高性能呢?
-
避免因为 IO 阻塞让 CPU 闲置,导致 CPU 的浪费。
-
避免多线程间增加锁来保证同步,导致并行系统串行化。
-
免创建、销毁、维护太多进程、线程,导致操作系统浪费资源在调度上。
高可用(High Availability)
高可用通常用来描述一个系统经过专