论文作业

 

 

互联网三高架构:高并发、高性能、高可

 

摘要: 提到互联网系统设计,通常会提到一个名词 “三高”,即高并发、高性能、高可用,它们是互联网系统架构设计永恒的主题。本文将对互联网三高架构即高并发、高性能、高可用等进行阐述。

关键词: 互联网三高架构

 

一、高并发

(一)概念

高并发是互联网分布式系统架构设计中必须考虑的因素之一,通常是指通过设计保证系统能够同时并行处理很多请求。

高并发相关常用指标有响应时间、吞吐量、每秒查询率QPS、并发用户数等。

响应时间:系统对请求做出响应的时间。

吞吐量:单位时间内处理的请求数量。

QPS:每秒响应请求数。

并发用户数:同时承载正常使用系统功能的用户数量。

(二)解决方案

垂直扩展:提升单机处理能力。垂直扩展的方式又有两种,增强单机硬件性能和提升单机架构性能。

不管是提升单机硬件性能,还是提升单机架构性能,都有一个致命的不足:单机性能总是有极限的。所以互联网分布式架构设计高并发终极解决方案还是水平扩展。

水平扩展:只要增加服务器数量,就能线性扩充系统性能。但是必然会增加成本,因此目前更多的是考虑如何在系统架构方面进行优化。

二、高性能

(一)概念

高性能是指程序处理速度非常快,所占内存少,cpu占用率低。高性能的指标经常和高并发的指标紧密相关,想要提高性能,那么就要提高系统发并发能力,两者互相捆绑在一起。

(二)解决方案

高性能缓存:对一些热点数据每次都从 DB 中读取,会给 DB 带来较大的压力,导致性能大幅下降。缓存根据性能由高到低分为:寄存器、L1缓存、L2缓存、L3缓存、本地内存、分布式缓存。

上层的寄存器、L1 缓存、L2 缓存是位于 CPU 核内的高速缓存,访问延迟通常在 10 纳秒以下。L3 缓存是位于 CPU 核外部但在芯片内部的共享高速缓存,访问延迟通常在十纳秒左右。高速缓存具有成本高、容量小的特点,容量最大的 L3 缓存通常也只有几十MB。本地内存是计算机内的主存储器,相比 CPU 芯片内部的高速缓存,内存的成本要低很多,容量通常是 GB 级别,访问延迟通常在几十到几百纳秒。

在使用缓存时,要注意缓存穿透、缓存雪崩、缓存热点问题、缓存数据一致性问题。当然为了提升整体性能通常会采用多级缓存组合方案。

日志优化,避免IO瓶颈:当系统处理大量磁盘 IO 操作的时候,由于 CPU 和内存的速度远高于磁盘,可能导致 CPU 耗费太多时间等待磁盘返回处理的结果。在IO中断过程中,如果此时有其他任务线程可调度,系统会直接调度其他线程,这样 CPU 就相应显示为 Usr 或 Sys;但是如果此时系统较空闲,无其他任务可以调度,CPU 就会显示为 iowait。

磁盘有个性能指标:IOPS,即每秒读写次数,性能较好的固态硬盘,IOPS 大概在 3 万左右。

Linux 有一种特殊的文件系统:tmpfs(临时文件系统),它是一种基于内存的文件系统,由操作系统管理。当我们写磁盘的时候实际是写到内存中,当日志文件达到我们的设置阈值,操作系统会将日志写到磁盘中,并将tmpfs中的日志文件删除。这种批量化、顺序写,大大提升了磁盘的吞吐性能。

三、高可用

(一)概念

高可用通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。高可用注意如果使用单机,一旦挂机将导致服务不可用,可以使用集群来代替单机,一台服务器挂了,还有其他后备服务器能够顶上。或者使用分布式部署项。

 (二)解决方案

主备切换,缩减故障时间:故障自动侦测,采用健康检查、心跳等技术手段自动侦测故障节点;自动转移,当侦测到故障节点后,采用摘除流量、脱离集群等方式隔离故障节点,将流量转移到正常节点;第三步自动恢复,当故障节点恢复正常后,自动将其加入集群中,确保集群资源与故障前一致。

熔断,提供过载保护:熔断就是在系统濒临崩溃的时候,立即中断服务,从而保障系统稳定避免崩溃。所谓过载保护,是指负载超过系统的承载能力时,系统会自动采取保护措施,确保自身不被压垮。

限流,提供过载保护:限流的原理跟熔断有点类似,都是通过判断某个条件来确定是否执行某个策略。但是又有所区别,熔断触发过载保护,该节点会暂停服务,直到恢复。限流,则是只处理自己能力范围之内的请求,超量的请求会被限流。

限流算法主要有:计数器限流、滑动窗口限流、令牌桶限流、漏桶限流。网上的资料很多,这里就不多赘述。

降级:业务在峰值时刻,系统抵挡不住全部的流量时,系统的负载、CPU 的使用率都超过了预警水位,可以对一些非核心的功能进行降级,降低系统压力。

降级是通过暂时关闭某些非核心服务或者组件从而保护核心系统的可用性。

 

posted @ 2022-05-19 19:01  谦寻  阅读(67)  评论(0编辑  收藏  举报