其他分享
首页 > 其他分享> > 高并发与高性能以及高可用对当代互联网的新要求

高并发与高性能以及高可用对当代互联网的新要求

作者:互联网

高并发与高性能以及高可用对当代互联网的新要求

张杰

摘要:随着互联网行业的发展。大型网站的标准不断提高,新时代的浪潮下,大量的用户,海量的数据给大型网站的架构带来更高的挑战,传统网站架构无法快速应对大数据的高并发情况,因此调整网站架构以适应现在的海量数据情况尤为重要,由单台服务器到分布式集群的发展可以展示出网站架构随时代变化的新要求,因此采取适合的架构来适用网站本身的功能是不可或缺的一点。网站的高速迭代以及用户的不断增加使高性能与高可用成为新时代网站占据市场的必备条件。

关键词:高并发;分布式;高性能;高可用

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


0  引言

网站架构的不断发展是时代浪潮前进裹挟互联网的结果。随着智能手机以及PC在新世纪的不断普及,越来越多的用户进入互联网的浪潮中,对网站的技术架构提出了新的要求。因此互联网的架构也在不断的演进,升级和迭代。从单一应用,到垂直拆分,到分布式服务,到SOA,以及现在火热的微服务架构等,还有在Google带领下来势汹涌的Service Mesh。

1  互联网架构的演变过程

   互联网架构随着用户数量的激增以及数据的指数增长造成互联网架构随着时代不断的演变以适应复杂的用户需求和不断改变的用户场景。由初始网站的单台服务器的使用到集群以及分布式架构的发展是互联网架构演变的重要过程。

  1.1单体系统架构

主要这是最传统最原始的站点系统架构,互联网开启之初常用的架构。单体系统一般功能与流量都很小,只需一个应用,将所有功能都集中在一个系统中,并部署在一台服务器上,以减少部署节点和成本。例如,将用户模块、问答模块、考试模块等都做在一个系统中,以一个应用的形式部署在一台服务器上。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。

 

图1  第一阶段

 1.2 缓存与读写分离

表随着访问量的激增,数据量的快速膨胀,对应用服务器和数据库服务器的IO性能要求也越来越高。单体服务总是资源有限,而单个数据库的数据流量越来越大,数据的访问性能也明显下降。 为了进一步降低数据库的访问压力,对数据库进行读写分离、分库分表等优化。 读写分离即将数据库分为主从数据库,从库实时同步主库的更新内容。写请求访问主数据库,读请求访问从数据库。分库分表即是把原本存储于一个库的数据分块存储到多个库上,把原本存储于一个表的数据分块存储到多个表上。不论是读写分离还是分库分表都有效分解了数据库访问压力。

基于二八定律,即大部分的业务数据只集中于数据中的一小部分,而有些数据是需要经常读取,但是更新很少,或是访问量非常大的数据块,这些情况下我们就需要引入缓存层, 如果访问命中缓存,既能减小数据库的访问压力,又可以提高数据访问性能。缓存的发展也是由简单到复杂,由单体到缓存集群,由单点到高可用。本地缓存的特点就是可以提供快速访问,但无法实现共享,无法保证高可用。而缓存集群可以提供高可用、可共享、大容量的存储,缓存层降低数据库的读写IO,有效提升系统响应能力。

 

图2  第二阶段

 

1.3 CDN反向代理以及网站加速

行为随着业务的进一步爬坡,需要能够进一步降低服务器的压力,这时候可以采用动静分离技术。动静分离技术是将服务的静态资源与后台应用进行分开部署,提高用户访问静态资源的速度,降低对后台的访问压力。

静态资源一般放在CDN上,部署在网络提供商的机房。用户在访问静态资源时,可以很好的利用CDN的优点,从距离自己最近的网络提供商机房获取数据。

动静分离后,带来的优点是显而易见的:后端应用更为服务化,只需要提供api接口即可,前端可以通过更加专业的技术提高访问效率。但同时静态文件的缓存更新以及前后端的更新成本都是动静分离所带来的问题。

 

图3  第三阶段

1.4 集群化高可用架构

随着用户规模和业务量的不断上涨,单个应用服务器将出现性能瓶颈,对于PB级的数据和高并发用户大流量访问,单一或者主备的数据库、文件系统都已经不能满足需求,需要集群化来分担负载。当数据规模达到一定规模,传统关系型数据库性能下滑非常严重,通过分库分表也难以应对,为了支撑海量数据和流量,出现了NoSql数据库,它关注对数据高并发地读写和对海量数据的存储。

同时应用服务器从单体变为集群,客户端也不再是直接接入后端应用,而是转而通过负载均衡设备代理后端多个服务器集群,一方面将访问压力分摊到了多个后端应用上,单个应用不再是性能瓶颈,另一方面可以实现服务路由,以及异常熔断等特性。

为了进一步降低服务端压力,降低客户端访问延迟,客户端与负载均衡设备之间加入CDN对静态资源进行缓存加速,利用GSLB调度体系,将用户请求精准调度至最优接入节点。以达到最优的访问性能。

 

图4  第四阶段

 

2  高并发技术分析

   高并发技术的核心是分流;分别针对请求的各个环节,根据具体场景和业务特点采用不同的分流方案,逐层逐级的分担系统压力,从而达到高并发能力。

常见的高并发技术有:动静分离、缓存、异步并发、水平扩展等。分流简单来说就是:一台服务器承担不了的流量,就让多台服务器共同分担;DB承担不了流量就让缓存来帮忙分担;等等。

客户端优化技术主要指的是客户端通过缓存数据,减少访问服务端的次数,以实现降低服务端压力,达到支持更多并发量的需求。

常见的处理方式是:缓存不经常变动的内容,每隔一定时间更新一次,或者除非修改了否则较长时间不更新;如:更新微信公众账号的头像时,手机端不会立即看到这个更新。另外,根据业务场景可以限制不必要的请求;如:点击一个按钮,发送一次请求到服务端时,禁用按钮,避免因用户多次点击,而发送不必要的请求。

网络优化的核心目标是:将资源缓存到距离用户最近的网络节点上,这样除了可以省下大量网络带宽外,还可以达到最快的请求速度;一般针对静态资源。

通过静态化技术(将不经常变动的内容生成静态文件)或动静分离技术(例如H5+ajax),将静态的内容存储在CDN上,当用户查看一个页面时,只让少数的动态请求落到服务器端,其他内容从CDN上直接获取,这样就可以极大的减少服务器端的流量。

 

 

 

3  高性能技术分析

   网站性能就是用户在浏览器上直观感受到的网站响应速度。这里的性能除了与请求的服务,服务端响应速度之外;还与客户端机器、浏览器和网络带宽等有关。性能优化:这里的优化主要是优化用户感官。使用前端架构优化手段,使浏览器尽快地显示客户感兴趣的内容、尽可能近地获取页面内容,从而改善客户视角下的网站性能。从开发人员角度,网站性能就是应用程序本身和其相关子系统的性能,包括响应延迟、系统吞吐量、并发处理能力、系统稳定性等技术指标。使用缓存加速数据读写;使用集群提高吞吐能力;使用异步消息加快请求响应以及削峰,使用代码优化改善程序性能。

4  高可用技术分析

   高可用是网站现代架构的重要技术之一。“高可用性”(High Availability) 通常用来描述一个系统,经过特殊设计,减少停止服务的时间,从而使其服务保持高度的可使用性。计算机系统的可靠性用平均无故障时间(MTTF)来度量,即计算机系统平均能够正常运行多长时间,才会发生一次故障。系统的可靠性能越高,平均无故障时间越长。可维护性用平均维修时间(MTTR)来度量,即系统发生故障后维修和重新恢复正常运行平均花费时间。系统的可维护性越好,平均维修时间越短。计算机系统的可用性定义为:MTTF/(MTTF+MTTR)*100%。而提高高可用性离不开四个方面,系统架构,容灾性,故障转移,监控报警。因此实现高可用必须从这四个方面发展。

 

 

5  结束语

网站架构的不断发展,对于当代互联网产生更多的变革。

参考文献:

[1]崔英志, 张绪玉, 高博. Web2.0时代的网站架构[J]. 重庆理工大学学报(自然科学), 2008(5):108-111.

[2]张鹏. 基于SSH框架的高并发与高可用网站架构的设计与开发[J]. 电脑知识与技术:学术版, 2020.

[3]余洪春. 构建高可用LINUX服务器(第3版)[M]. 机械工业出版社, 2014.

[4]杨光辉. 高性能网站架构:互联网系统架构的演进[J]. 程序员, 2013(9):7.

 

标签:缓存,架构,访问,网站,数据库,并发,高性能,当代
来源: https://www.cnblogs.com/zhanghua-lijie/p/16293086.html