ICode9

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

互联网三高架构论文

2022-05-20 16:31:30  阅读:181  来源: 互联网

标签:三高 架构 可用 性能 论文 系统 并发 CPU


互联网三高架构论述

                                       陶鲸泽

 

摘要:互联网有三高架构,三高分别是:高并发,高性能,高可用。其中最关注的软件质量的属性是:性能、可用性、伸缩性、扩展性、安全性这几个方面。而构建此类系统,最常见的架构模式有:横向分层、纵向分割、分布式化、集群化、使用缓存、使用异步模式、使用冗余、自动化。

 

关键词:高并发,高性能,高可用

1高并发

1.1 什么是高并发

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

⾼并发相关常⽤的⼀些指标有响应时间,吞吐量,每秒查询率QPS,并发⽤户数等。

响应时间:系统对请求做出响应的时间。例如系统处理⼀个HTTP请求需要200ms,这个200ms就是系统的响应时间。

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

QPS:每秒响应请求数。在互联⽹领域,这个指标和吞吐量区分的没有这么明显。

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

1.2怎么提高程序的高并发

提高程序高并发的两种方法:垂直扩展与⽔平扩展

垂直扩展:提升单机处理能⼒,垂直扩展的⽅式⼜有两种:

(1)增强单机硬件性能。

(2)提升单机架构性能。

⽔平扩展:增加服务器数量,一旦服务器数量增加就能线性扩充系统性能。

2高性能

2.1什么是性能:

性能,是一个速度的概念,单位时间内可以处理的任务数量,性能的影响因素大多与CPU有关。

2.2 性能与CPU的关系

 

CPU越快,应用的性能一定越好吗?

绝对的。只不过CPU和应用性能提升可能不成线性增长的关系,因为应用可能是IO密集型,应用性能还会受到IO阻塞的影响。

CPU越多,应用的性能一定越好吗?

大部分情况是的。如果大量锁存在,性能提升可能会大打折扣,因为并行能力会被锁住,又变成单线程执行了,没有最大的发挥多CPU的作用。

服务器越多,性能一定越好吗?

大部分情况是的。但是单个服务器的效率可能会是下降的,数据一致性问题、同步问题、锁问题,这些都会导致单个服务器的效率下降,所以不是线性相关。

关于CPU利用率:
如果只是考虑应用对CPU利用效率的话:单核=多核=多服务器

单进程/单线程的系统对于服务器资源的利用率更高。

到多核的系统中,就会因为锁的问题,多任务同步的问题,操作系统调度的问题,造成一定的资源浪费。而分布式系统中,这些浪费也会更严重。

怎样更好的更有效的利用服务器资源呢?

避免因为IO阻塞让CPU闲置,导致CPU的浪费;

避免多线程间增加锁来保证同步,导致并行系统串行化;

避免创建、销毁、维护太多进程、线程,导致操作系统浪费资源在调度上;

3高可用

3.1 什么是高可用

 

”高可用“就是可以正常提供服务。通常会使用下面三个指标来衡量

 MTBF:系统可用时长。

 MTTR:系统从故障后到恢复正常所耗费的时间。

 SLA:服务等级协议,用于评估服务可用性等级。计算公式是 MTBF/(MTBF+MTTR)。

假设系统一直能够提供服务,我们说系统的可用性是100%。

 

3.2 怎么解决高可用

所以在常用的架构设计中,主要通过2个方面来解决高可用:

垂直分层,将各个服务不用层上的应用进行切割,从而降低每层服务的复杂度,达到降低整体出错的概率。

 

水平冗余, 就是在每一层上进行多个服务的冗余,再加上故障的自动转移,就可以提高服务的可用性。

3.3常见的互联网分层架构

 

常见互联网分布式架构如上,分为:

(1)客户端层:典型调用方是浏览器browser或者手机应用APP

(2)反向代理层:系统入口,反向代理

(3)站点应用层:实现核心应用逻辑,返回html或者json

(4)服务层:如果实现了服务化,就有这一层

(5)数据-缓存层:缓存加速访问存储

(6)数据-数据库层:数据库固化数据存储

整个系统的高可用,又是通过每一层的冗余+自动故障转移来综合实现的

 

参考文献:

1:b站up主文章《聊聊互联网"三高"架构》;

2:百度文库(互联网架构如何实现高并发);

 

 

 

 

 

 

标签:三高,架构,可用,性能,论文,系统,并发,CPU
来源: https://www.cnblogs.com/yitiaokuailedexiaojingyu/p/16292749.html

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

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

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

ICode9版权所有