第五章 万无一失:网站的高可用架构

news/2024/5/20 4:35:47/文章来源:https://blog.csdn.net/weixin_30443747/article/details/96950121

内容梳理

  网站可用性(Availability),描述网站可有效访问的特性。Usability,也可为译可用性,强调网站的有用性,体现对用户的使用价值。

5.1 网站可用性的度量与考核

  5.1.1 网站可用性度量

  通常用多少个9来衡量网站的可用性,

  网站不可用时间(故障时间) = 故障修复时间点 - 故障发现(报告)时间点

  网站年度可用性指标 = (1 - 网站不可用时间/年度总时间)*100%

  2个9基本可用,3个9较高可用,4个9是具有自动回复能力的高可用。

  5.1.2 网站可用性考核

  可用性指标是网站架构设计的重要指标,对外是服务承诺,对内是考核指标,更多使用故障分考核。

  故障分是指对网站故障进行分类加权计算故障责任的方法。

  故障分 = 故障时间(分钟)* 故障权重

5.2 高可用的网站架构

  硬件故障是常态,网站的高可用结构设计的主要目的就是保证服务器硬件故障时服务依然可用、数据依然保存并能够被访问,实现高可用架构的主要手段是数据和服务的冗余备份及失效转移。

  大型网站的分层架构及物理服务器的分布式部署使得位于不同层次的服务器具有不同的可用性特点。关闭服务或服务器宕机时产生的影响也不同,高可用的解决方案也差异甚大。  

5.3 高可用的应用

  应用层主要处理网站应用的业务逻辑,因此也称为业务逻辑层,应用的一个显著特点是应用的无状态性。无状态的应用指应用服务器不保存业务的上下文信息,仅根据每次请求提交的数据进行相应的业务逻辑处理,多个服务实例(服务器)之间完全对等,请求提交到任意服务器,处理结果完全一样。

  5.3.1 通过负载均衡进行无状态服务的失效转移

  在业务量和数据量较高的情况下,当单台服务器不能承担所有负载压力时,通过负载均衡手段,将流量和数据分摊到一个集群组成多台服务器上,以提高整体的负载处理能力。

   

  当集群中的服务器都可用时,负载均衡服务器会把用户发送的访问请求分发到任意一台服务器上处理。当有服务器宕机时,负载均衡服务器会通过心跳检测机制发现该服务器失去响应,就会把它从服务器列表中删除,而将请求发送到其他服务器上。    

  5.3.2 应用服务器集群的Session管理

  应用服务器的高可用架构设计主要基于服务无状态这一特性,事实上,服务总是有状态的。

  Web应用中将这些多次请求修改使用的上下文对象称作回话(Session),单机情况下,Session可由部署在服务器上的Web容器管理。在负载均衡的集群环境中,请求有可能被发送到任意一台服务器上,保证每次请求获取正确的Session更加复杂。  

  集群环境下,Session管理的主要手段:  

  1. Session复制

  在集群中的几台服务器之间同步Session对象,使得每台服务器上都保存所有用户的Session信息。服务器需要使用Session,只需在本机获取即可。

     

  集群规模较大时,集群服务器之间需要大量的通信进行Session复制,占用服务器和网络大量资源。

   2. Session绑定

  利用负载均衡的源地址Hash算法实现,负载均衡服务器总是精来源于同一IP的请求分发到同一台服务器上。将Session绑定在某台特定的服务器上,保证Session总能在这台服务器上获取,称为会话粘滞。

  

   一台服务器宕机,该机器上的Session也就不复存在。

   3. 利用Cookie记录Session

  将Session记录在客户端,每次请求服务器时,将Session放在请求中发送给服务器,服务器处理完请求后再将修改过的Session响应给客户端。网站没有客户端,可用浏览器支持的Cookie记录Session。

  

  受Cookie大小限制,能记录的信息有限;每次请求响应带Cookie影响性能;关闭Cookie,访问不能正常进行。

   4. Session服务器

  利用独立部署的Session服务器(集群)统一管理Session,应用服务器每次读写Session时,都访问Session服务器。有高可用性、伸缩性好、性能不错、对信息大小没限制的特点。

  

  将应用服务器的状态分离,分为无状态的应用服务器和有状态的Session服务器。有状态的Session服务器,对分布式缓存、数据库等进行包装,使其符合Session的存储和访问要求。

5.4 高可用的服务

  可复用的服务模块为业务产品提供基础公共服务,这些服务通常独立分布式部署,被具体应用远程调用。可复用的服务和应用一样,也是无状态的服务。

  高可用的服务策略:

   1. 分级管理

  运维上将服务器进行分级管理,核心应用和服务优先使用更好的硬件。服务部署上也要进行必要的隔离,防止故障的连锁反应。

   2. 超时设置

  一旦请求超时,通信框架就抛出异常,应用服务器根据服务调度策略,选择重试或转移请求到其他服务器。

   3. 异步调用

  使用消息队列,避免一个服务失败导致整个应用请求失败。

   4. 服务降级

  网站访问高峰时,对服务进行降级,保证核心应用和服务正常运行。降级有两种手段:拒绝服务和关闭服务。

  拒绝服务,拒绝低优先级应用的调用,或者随机拒绝部分请求调用。

  关闭功能,关闭不重要的服务,或者服务内部关闭不重要的功能。

   5. 幂等性设计

  保证服务重复调用和调用一次产生的结果相同。

5.5 高可用的数据

  保证数据存储高可用的手段主要是数据备份和失效转移机制。数据备份是保证数据有多个副本,失效转移机制保证当一个数据副本不可访问时,可以快速切换到其他副本。

  整个网站共享通一个分布式缓存集群,单独的应用和产品不需要部署自己的缓存服务器,只需向共享缓存集群申请缓存资源即可。

  5.5.1 CAP原理

  高可用数据要保证数据持久性。数据可访问性和数据一致性。

  CAP原理认为,一个提供数据服务的存储系统无法同时满足数据一致性、数据可用性、分区耐受性这三个条件。在大型网站中,通常会选择强化分布式存储系统的可用性(A)和伸缩性(P),在某种程度上放弃一致性(C)。

  数据一致性又可分为数据强一致、数据用户一致和数据最终一致。 

  5.5.2 数据备份

  冷备份是定期将数据复制到某种介质上并物理存档保管,备份时无法访问数据。

  实时在线业务中使用数据热备份,主要有异步热备和同步热备两种方式。  

  5.5.3 失效转移

  当数据服务器集群中任一台服务器宕机,应用程序针对这台服务器的所有读写操作都需要重新路由到其他服务器,保证数据访问不会失败。

  失效转移操作包括失效确认、访问转移和数据恢复三部分。  

   1. 失效确认

  检测服务器宕机有心跳检测和应用程序访问失败报告两种。应用程序发送访问失败报告后,控制中心还要再发送心跳检测进行确认。

   2. 访问转移

  完全对等的存储服务器,一台宕机后,应用程序根据配置直接切换到对等的服务器上。

  存储不对等时,重新计算路由,选择存储服务器。

   3. 数据恢复

  从健康的服务器复制数据。

5.6 高可用网站的软件质量保证

  5.6.1 网站发布

  网站发布过程和服务器宕机效果相当,发布过程中,每次关闭集群中一小部分服务器,发布完成后立即可以访问,不影响用户使用。  

  5.6.2 自动化测试

  使用自动化测试工具或脚本完成测试,一键完成系统部署、测试数据生成、测试执行、测试报告生成等全部测试过程。

  5.6.3 预发布验证

  网站发布时,先发布到预发布机器上,确认没有问题后再正式发布。

  预发布服务器是一种特殊用途的服务器,它和线上正式服务器唯一不同就是没有配置在负载均衡服务器上,外部用户无法访问。  

  5.6.4 代码控制

  使用核心问题是如何进行代码管理,既能保证代码发布版本的稳定正确,又能保证不同团队的开发互不影响。

  版本控制工具SVN有主干开发、分支发布和分支开发、主干发布两种方式。目前网站开发中主要使用分支开发、主干发布的方式。

  Git也是很好的版本控制工具。

  5.6.5 自动化发布

  人的干预越少,自动化程度越高,引入故障的可能性就越小。   

  火车发布模型,基于规则驱动的流程。将每个应用看做一次火车旅行,火车定点运行,期间有若干站点,每一站都进行例行检查,不通过的项目下车,剩下的项目继续坐着火车旅行,直到火车到达终点(应用发布成功)。

  5.6.6 灰度发布

  将集群服务器分成若干部分,每天只发布一部分服务器,观察是否稳定运行没有故障,第二天继续发布一部分服务器,持续几天才把整个集群全部发布完,期间如果发现问题,只需回滚已发布的一部分服务器即可。

5.7 网站运行监控

  “不允许没有监控的系统上线”

  5.7.1 监控数据采集 

  涵盖所有非直接业务行为的数据采集和管理,包括供数据分析师和产品设计师使用的网站用户行为日志、业务运行数据,以及供运维工程师和开发工程师使用的系统性能数据等。

   1. 用户行为日志收集

  用户行为日志指用户在浏览器上所做的所有操作及其所在的操作环境,主要有服务器端日志收集和客户端浏览器日志收集两种。  

   2. 服务器性能监控

  收集服务器性能指标,及时判断应用状况,防患于未然,在初始化系统时统一部署,应用程序开发不需要关心服务器性能监控。

   3. 运行数据报告

  监控与具体业务场景相关的技术和业务指标,运行数据要在具体程序中采集并报告。  

  5.7.2 监控管理

  根据监控数据做系统性能评估和集群规模伸缩性预测,还可以进行风险预警、自动化负载调整,最大化利用集群所有机器的资源。

   1. 系统报警

  某些指标超过阈值,对相关人员报警,及时采取措施。  

   2. 失效转移

  监控系统在发现故障时主动通知应用,进行失效转移。

   3. 自动优雅降级

  应对突然爆发的访问高峰,主动关闭部分功能,释放部分系统资源,保证网站核心更功能正常访问。

本章结构

转载于:https://www.cnblogs.com/Mrcoco/p/10187494.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_737160.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于资源类网站我就只服这4个,每一个都能让你大开眼界!

对于经常从事互联网行业的工作者来说,储藏一些资源网站是必备的,方便我们随时将网上的资源一扫而进。今天小编给大家推荐4个实用性超强的资源网站! GrowthTools 在线极客工具大全 GrowthTools是一个帮助网络工作者收集实用工具的网站&…

干货!这10个顶级资源网站,不知道实在是太可惜了!

大家一般找资源肯定会先想到百度搜索,可是有时候度娘资源也是有限的。想要的资源找不到怎么办?别担心,今天给大家分享10个资源超级丰富的网站,赶快来看看吧! 1.有妖气 中国唯一且最大的纯原创漫画网站,数…

强烈推荐这4个网站,每一个都超级实用,赶快收藏起来吧!

压缩图 一个提供在线图片压缩工具集合的站点,支持GIF压缩、PNG压缩、JPG压缩,还可以在线图片加水印、图片旋转、制作长图拼接、图片改颜色、图片添加文字、图片去底色、证件照换底色、转换格式、图片加边框、制作一寸、两寸证件照等。 比格张 一个专…

在线图片制作网站哪个好 PS图片处理教程

PS 堪称最强大的整容术,不仅修图专业,而且使用较为方便,不管是拍证件照还是艺术照,都会使用到修图工具,就像吃饭睡觉一样,那有什么在线图片制作网站可以对图片进行处理呢? 1 、首先除了经…

5个高质量的自学网站,每天坚持一小时,让你受益一生!

今天给大家整理了5个终身受益的自学网站,里面都是满满的干货,希望能够帮助到大家! 我要自学网 http://www.51zxw.net/ 全免费视频教学网,百科全书式自学平台,全方位解读各项技能操作,手把手教会。在线…

网站图片需要付费禁止下载?这个网站神器轻松搞定!

有时候我们需要下载一个有版权或者无版权的图片作为个人使用,但是有些网站是无法直接下载图片的,需要付费购买才行,今天给大家共享一个很简单的方法,只要使用这个网站就可以解决网页需要付费的图片免费下载了; 使用方…

5款黑科技十足的网站!各个真材实料,你一定能用到!

电脑使用得多了,我们收藏网站也越来越多了,作为一个互联网的重度用户,手里最不能缺的就是资源!今天小编推荐了6个网站,各个都黑科技十足,超级实用!如果你还不知道就真的就太可惜了! …

授人以资源不如授人以资源网站!

大多数人都想要获得一些一些真正实用的网站,对学习对工作还是对以后的家庭生活有所帮助,所以小编就整理了5款大家可能会用到的网站,希望大家好好珍藏哦! 1. manybooks https://manybooks.net/ 一款完全免费下载和阅读的电子书搜…

推荐6款自学网站,好用到暴风哭泣!

古人表达悲伤用”我心伤悲,莫知我衰“,而你却只会用”蓝瘦香菇”,所以文化确实很重要。可能你现在体会不出来,但是等你到了某个节点,别人把你远远地甩开了,你才知道学习知识的重要性。 下面是小编为大家推…

每天花2小时学习5大学习网站!

直到工作才发现,在学校学得再多知识,到工作中还是要重新学习。不知道大家有没有发现,公司往往会将更高的工资给那些有工作经验的,而不是什么都不会的职场小白。简单的来说,那是因为公司感觉不到你为公司带来的价值。 …

一定要学习的6个网站

其实大家在学校里所读的专业,和在社会上的工作很多都不搭边的。这个时候我们为了升职加薪必须要不断地学习。在这个网络发达的时代,如果不收藏几个学习网站真是可惜了。 接下来小编介绍的这6个网站,每一个都十足好用。坚持下来,你…

被这5个资源网站惊到了!老司机秒懂!

每次遇到什么不会的东西,第一时间想到的就是--上百度!实际上我们在百度上也只会翻看前面两页,相信没有多少人会一直翻看后面的内容。这样直接导致我们搜索的内容很有局限性。 实际上我们可以在别的搜索引擎网站进行搜索,这些资源…

6款相见恨晚的资源网站,每个都百里挑一,送给正需要的你!

不知道大家在网上是怎么找资源的呢?是在网站上瞎找呢?还是利用资源网站搜索你想要的资源呢?今天在这里为大家整理的6款相见恨晚的资源网站,无论是最新电影电视剧动漫,还是PPT模板、资料、小说都可以一键帮你搞定&#…

6个不可多得的黑科技网站!

其实在职场办公当中想要提升自己的工作效率,就必须得使用几个工具来帮助自己,网上这种类型的工具网站其实有很多,不仅能够在里面找到你需要的素材,还可以帮助你处理一些文件以及图片设计什么的,下面就带大家看看到底是…

找不到合适的模板素材,那是你没有收藏这个网站!

想要做好公众号,那么编辑公众号推文是重中之重,依靠文章来吸引用户,做好引流拉新。怎样才能写好公众号文章? 除了要有优秀的写作能力,还需要有创新的思维和审美能力,比如文章排版,公众号首图的…

找不到合适的文案配图?你需要收藏这个素材网站

随着互联网的快速发展,线上营销已经成为现在营销的主流方式,比如淘宝运营,微信营销,公众号运营,社群营销等等。线上营销最重要的就是输出有价值的内容,想要写出优秀的文案,配图也是非常重要的&a…

分享一下经常使用的 在线工具网站;如:在线是作图,抠图,格式转换等等…………

转换工具 bejson (https://www.bejson.com/convert/html_js/) 一款非常好用的在线转换工具支持json、js、html、正则、md5解密等等 代码对比工具 代码对比/归并(https://tool.oschina.net/diff) 一款非常好用的线上代码对比…

用asp.net建立自己的网站过时了吗?vs2017建站测试笔记

记得long long ago,n years ago用asp.net建立过网站,今天不得以想做一个跨平台的系统,但目前还没有好的工具,不能跨andriod和windows及IOS,那么就做用asp.net个网站吧! 一、安装开发环境 首先&#xff0c…

数据资料网站_更新......

GRACE重力卫星数据 HTTP404 无法找到页面 全球月尺度永久水/季节水JRC数据集,基于modis ,1984-2015 High-resolution mapping of global surface water and its long-term changes | Nature DEM数据 NASAdem_30 LP DAAC - NASADEM_HGT ET数据集 Glob…

phpcms 缩略图字段设置图片大小无效_怎么优化百度左侧快照缩略图,让中小企业网站快速被搜到...

什么是百度快照左侧缩略图?百度快照缩略图也称为百度图文快照搜索。我们通过百度搜索时,经常会看到左侧带有缩略图的快照,一般左侧为LOGO或者是特定的图片。百度左侧快照缩略图优化属于搜索引擎体验优化,主要作用是让展示的网站以…