其他分享
首页 > 其他分享> > 互联网三高架构论文

互联网三高架构论文

作者:互联网

互联网三高架构论述

                                       陶鲸泽

 

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

 

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

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