互联网三高架构的论述

互联网三高架构的论述

纪梓博

(石家庄铁道大学,河北省 石家庄市 050000)

摘要:互联网的三高架构是在设计互联网系统架构的时候需要满足的高并发、高性能和高可用。这篇文章是对互联网三高架构的技术特点、要求进行论述。

关键词:互联网;高并发;高性能;高可用

中图分类号:   文献标志码:A

Discussion of the three high architectures of the Internet

Ji Zibo

(Shijiazhuang Railway University, Shijiazhuang 050000, Hebei Province, China)

Abstract: The three high architectures of the Internet are the high concurrency, high performance and high availability that need to be met when designing the Internet system architecture. This article discusses the technical characteristics, requirements and design schemes of the three high architectures of the Internet.

Keywords:Internet; high concurrency; high performance; high availability


0  引言

互联网三高架构包括高并发、高性能、高可用,简称三高即3H。这三者都是互联网分布式系统架构设计中必须考虑的因素之一,目前所有集群分布式,微服务,云原生,中台,数据湖,大数据等等,包括SpringCloud一系列解决方案组件等等,最终目的都是为了这三点。

1      高并发

1.1   特点

互联网分布式系统架构设计中必须考虑的因素之一,它一般是指,经过设计保证系统可以同时并行处理不少请求。

高并发相关经常使用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。

1.2   要求

互联网分布式架构设计,提升系统并发能力的方式,方法论上主要有两种:垂直扩展(Scale Up)与水平扩展(Scale Out)。

垂直扩展:提高单机处理能力。垂直扩展的方式又有两种:

(1)加强单机硬件性能,例如:增长CPU核数如32核,升级更好的网卡如万兆,升级更好的硬盘如SSD,扩充硬盘容量如2T,扩充系统内存如128G;

(2)提高单机架构性能,例如:使用Cache来减小IO次数,使用异步来增长单服务吞吐量,使用无锁数据结构来减小响应时间;

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

水平扩展:只要增长服务器数量,就能线性扩充系统性能。水平扩展对系统架构设计是有要求的,如何在架构各层进行可水平扩展的设计,以及互联网公司架构各层常见的水平扩展实践,是本文重点讨论的内容。

2      高性能

2.1   特点

高性能的架构是以用户为中心,提供快速的网页访问体验,主要参数有较短的响应时间、较大的并发处理能力、较高的吞吐量与稳定的性能参数。计算机软件工程技术在互联网时代取得了高速发展,软件工程技术与大数据技术相结合,提升了软件工程服务 社会的能力。大数据技术的专业实用性对软件工程技术提 出了更高要求,数据处理能力兼顾安全有效性。

2.2   要求

性能直接影响用户的感官体验,访问一个系统,如果超过5秒没有响应,绝大数用户会选择离开。

满足了高并发,系统压力增大,平均请求延迟也会增大,如此情况下可采用高性能缓存、日志优化,避免IO瓶颈

高性能缓存

对一些热点数据每次都从 DB 中读取,会给 DB 带来较大的压力,导致性能大幅下降。所以,我们需要用缓存来提升热点数据的访问性能,比如将活动信息数据在浏览器的缓存中保存一段时间。

缓存根据性能由高到低分为:寄存器、L1缓存、L2缓存、L3缓存、本地内存、分布式缓存

上层的寄存器、L1 缓存、L2 缓存是位于 CPU 核内的高速缓存,访问延迟通常在 10 纳秒以下。L3 缓存是位于 CPU 核外部但在芯片内部的共享高速缓存,访问延迟通常在十纳秒左右。高速缓存具有成本高、容量小的特点,容量最大的 L3 缓存通常也只有几十MB。

本地内存是计算机内的主存储器,相比 CPU 芯片内部的高速缓存,内存的成本要低很多,容量通常是 GB 级别,访问延迟通常在几十到几百纳秒。

日志优化,避免IO瓶颈

当系统处理大量磁盘 IO 操作的时候,由于 CPU 和内存的速度远高于磁盘,可能导致 CPU 耗费太多时间等待磁盘返回处理的结果。对于这部分 CPU 在 IO 上的开销,我们称为 “iowait”。

Linux 有一种特殊的文件系统:tmpfs(临时文件系统),它是一种基于内存的文件系统,由操作系统管理。当我们写磁盘的时候实际是写到内存中,当日志文件达到我们的设置阈值,操作系统会将日志写到磁盘中,并将tmpfs中的日志文件删除。

3      高可用

3.1   特点

大型网站应该在任何时候都可以正常访问,正常提供对外服务。因为大型网站的复杂性,分布式,廉价服务器,开源数据库,操作系统等特点,要保证高可用是很困难的,也就是说网站的故障是不可避免的。

3.2   要求

高可用指标是指用来衡量一个系统可用性有多高。

主备切换,缩减故障时间

当系统出现故障时,首要任务不是立马查找原因,考虑到故障的复杂样,定位排查要花些时间,等问题修复好,SLA也降了好几个档。有没有更快的方式解决这个问题?那就是故障转移。

当发现故障节点的时候,不是尝试修复它,而是立即把它隔离,同时将流量转移到正常节点上。这样通过故障转移,不仅减少了 MTTR 提升了 SLA,还为修复故障节点赢得了足够的时间。

主备切换大致分为三步:

第一步故障自动侦测(Auto-detect),采用健康检查、心跳等技术手段自动侦测故障节点;

第二步自动转移(FailOver),当侦测到故障节点后,采用摘除流量、脱离集群等方式隔离故障节点,将流量转移到正常节点;

第三步自动恢复(FailBack),当故障节点恢复正常后,自动将其加入集群中,确保集群资源与故障前一致。

熔断,提供过载保护

所谓过载保护,是指负载超过系统的承载能力时,系统会自动采取保护措施,确保自身不被压垮。

熔断就是在系统濒临崩溃的时候,立即中断服务,从而保障系统稳定避免崩溃。它类似于电器中的“保险丝”,当电流过大的时候,“保险丝”会先被烧掉,断开电流,以免电路过热烧毁电器引起火灾。

限流,提供过载保护

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

降级比如电商大促,业务在峰值时刻,系统抵挡不住全部的流量时,系统的负载、CPU 的使用率都超过了预警水位,可以对一些非核心的功能进行降级,降低系统压力,比如把商品评价、成交记录等功能临时关掉。弃车保帅,保证 创建订单、支付 等核心功能的正常使用。

当然不同业务、不同公司处理方式也各不相同,需要结合实际场景,和业务方一块讨论,最后达成一个统一认可的降级方案。

4      结束语

互联网三高很好的满足的目前各互联网大厂对于业务需求的井喷式增长的需求。三高系统设计时兼顾业务功能的实现以及同时保证系统的高并发、高可用。

参考文献:

[1] 百度百科,互联网三高架构:高并发、高性能、高可用,https://cloud.tencent.com/developer/article/1865025

[2] “软件系统三高问题”高并发、高性能、高可用系统设计经验,玄明Hanko,https://blog.csdn.net/citywu123/article/details/123208680

[3] 互联网三高架构:高并发、高性能、高可用 - 简书,pigness,https://www.jianshu.com/p/fd8ff58ba5d2

posted @ 2022-05-22 00:01  墨夕相拥★  阅读(30)  评论(0编辑  收藏  举报