ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

互联网三高架构

2022-05-20 14:31:30  阅读:228  来源: 互联网

标签:三高 缓存 架构 性能 并发 互联网 内存 CPU


互联网三高架构的技术特点、要求、设计方案

 张培江

摘要:互联网的三高架构就是指设计互联网系统架构时需要满足高可用,高性能,高并发,本文对互联网三高架构的技术特点、要求、设计方案进行简绍

关键字:互联网、架构、性能

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

一、互联网三高架构的技术特点

1.1高并发

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


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

1.2高可用

高可用通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。高可用注意如果使用单机,一旦挂机将导致服务不可用,可以使用集群来代替单机,一台服务器挂了,还有其他后备服务器能够顶上。或者使用分布式部署项。比如现在redis的高可用的集群方案有: Redis单副本,Redis多副本(主从),Redis Sentinel(哨兵),Redis Cluster,Redis自研

1.3高性能

高性能是指程序处理速度非常快,所占内存少,cpu占用率低。高性能的指标经常和高并发的指标紧密相关,想要提高性能,那么就要提高系统发并发能力,两者互相捆绑在一起。应用性能优化的时候,对于计算密集型和IO密集型还是有很大差别,需要分开来考虑。还有可以增加服务器的数量,内存,IO等参数提升系统的并发能力和性能,但不要浪费资源,要考虑硬件的使用率最高才能发挥到极致。要提高性能,就要避免因为IO阻塞让CPU闲置,导致CPU的浪费避免多线程间增加锁来保证同步,导致并行系统串行化免创建、销毁、维护太多进程、线程,导致操作系统浪费资源在调度上。

二、互联网三高的要求

2.1高并发

2.1.1网络

通常情况下,网络因素是导致用户体验变差的首要因素。我们需要考虑如下性能指标:

带宽:链路的最大传输速率,单位是 b/s(比特 / 秒)。在你为服务器选购网卡时,或者考虑机房专线,以及云端服务器的资源规划时,带宽就是最核心的参考指标。常用的带宽有 1000M、10G、40G、100G 等。

吞吐量:表示没有丢包时的最大数据传输速率,单位通常为 b/s (比特 / 秒)或者 B/s(字节 / 秒)。吞吐量受带宽的限制,吞吐量 / 带宽也就是该网络链路的使用率。

延时,表示从网络请求发出后,一直到收到远端响应,所需要的时间延迟。这个指标在不同场景中可能会有不同的含义。它可以表示建立连接需要的时间(比如 TCP 握手延时),或者一个数据包往返所需时间(比如 RTT)

2.1.2CPU

CPU是决定单节点系统并发能力的核心。CPU使用率 PU 使用率描述了非空闲时间占总 CPU 时间的百分比,根据 CPU 上运行任务的不同,又被分为用户 CPU、系统 CPU、等待 I/O CPU、软中断和硬中断等

2.1.3内存

内存的性能指标主要关注的是,已用内存、剩余内存、共享内存、可用内存、缓存和缓冲区的用量等。

2.2高可用

影响系统可用性的因素很多,通常有很多因素是我们不可控的,如硬件故障或者基础设施等。我们主要可以通过提高工程化能力和优化工作流程解决。因此需要注意完善的代码质量管理体系和自动化测试体系,完善的权限管理体系,其他自动化的开发、运维工具体系

2.3高性能

性能直接影响用户的感官体验,访问一个系统,如果超过5秒没有响应,绝大数用户会选择离开。影响系统性能的因素主要有用户网络环境、请求/响应的数据包大小、业务系统 CPU、内存、磁盘等性能、业务链路的长度、下游系统的性能、算法实现是否高效等。对一些热点数据每次都从 DB 中读取,会给 DB 带来较大的压力,导致性能大幅下降。所以,我们需要用缓存来提升热点数据的访问性能,比如将活动信息数据在浏览器的缓存中保存一段时间。缓存根据性能由高到低分为:寄存器、L1缓存、L2缓存、L3缓存、本地内存、分布式缓存。上层的寄存器、L1 缓存、L2 缓存是位于 CPU 核内的高速缓存,访问延迟通常在 10 纳秒以下。L3 缓存是位于 CPU 核外部但在芯片内部的共享高速缓存,访问延迟通常在十纳秒左右。高速缓存具有成本高、容量小的特点,容量最大的 L3 缓存通常也只有几十MB。本地内存是计算机内的主存储器,相比 CPU 芯片内部的高速缓存,内存的成本要低很多,容量通常是 GB 级别,访问延迟通常在几十到几百纳秒。

三、互联网三高设计方案

3.1高并发

3.1.1、系统拆分

将一个大的系统拆分为基于微服务架构的多个子系统,技术落地选择使用SpringCloud来做,然后每个子系统连一个数据库,这样本来就一个库,现在多个数据库,这样也可以扛高并发。

3.1.2、使用缓存

缓存,一定要用缓存。大部分的高并发场景,都是读多写少,我们完全可以在数据库和缓存里都写一份,然后读的时候大量走缓存,可以引入Redis作为分布式缓存的技术解决方案,redis单机就支持每秒几万的并发,在集群情况下更是可以达到每秒几十万的并发。

3.1.3、分库分表

分库分表,可能到了最后数据库层面还是免不了抗高并发的要求,那么就将一个数据库拆分为多个库,多个库来扛更高的并发;然后将一个表拆分为多个表,每个表的数据量保持在一定范围内,提高sql跑的性能。

3.1.4、读写分离

读写分离,读流量太多的时候,还可以加更多的从库。

 

3.2高可用

主从复制

 

 

 

主主复制

 

 

3.3高性能

一个系统往往有复杂的计算逻辑,该计算会消耗大量时间,如果系统中只有一台机器处理计算请求,那么会造成请求排队、堆积,导致响应延迟增加。计算有个特点,只要输入保持不变,计算逻辑过程保持不变,那么计算结果也会不变。所以,为了提高计算性能,我们可以选择水平扩展的方式——也就是增加机器,以扩大计算性能。

 

标签:三高,缓存,架构,性能,并发,互联网,内存,CPU
来源: https://www.cnblogs.com/zpj666/p/16292190.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有