大型网站技术架构(五)网站高可用架构

news/2024/5/15 13:47:20/文章来源:https://blog.csdn.net/weixin_33795743/article/details/92652858

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

网站的可用性(Avaliability)描述网站可有效访问的特性。

1、网站可用性的度量与考核

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


      网站年度不可用时间=(1-网站不可用时间/年度时间)× 100%


      可用性指标时网站架构设计的重要指标,对外是服务承诺,对内是考核指标,具体到每个工程师,更多的是使用故障分。
      所谓故障分是指对网站故障进行分类加权计算故障责任的方法。如下是个案例:

分类

描述

权重

事故级故障

严重故障,网站整体不可用

100

A类故障

网站访问不顺畅或核心功能不可用

20

B类故障

非核心功能不可用,或核心功能少数用户不能访问

5

C类故障

其他故障

1

 

     故障分的计算公式为:


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

2、网站的高可用架构

一个典型的网站设计通常遵循如下图所示的基本分层模型。

 

在负载的大型网站架构中,划分的粒度会更小,更详细,但通常还是能够把这些服务器划分到这三层中。

           对于应用层的服务器通常为了应对高并发的访问请求,会通过负载均衡设备将一组服务器组成一个集群共同 对外提供服务,当负载均衡设备通过心跳检测到某台服务器不可用时,就将其从集群列表中提出,并将请求分发到集群中其他 可用的服务器上,是整个集群保存可用,从而实现应用高可用。

        位于服务层的服务器情况和应用层类似,也是通过集群方式实现高可用,只是这些服务器被应用层通过分布式服务调用框架访问, 分布式服务调度框架会在应用层客户端中实现负载均衡功能。

        位于数据层的服务器情况比较特殊,数据服务器上存储着数据,为了保证数据不丢失,数据访问服务不中断,需要在数据写入时进行数据同步复制,将数据写入多台服务器上,实现数据冗余备份。
        网站升级的频率一般都非常高,每次网站发布都需要关闭服务,重新启动系统,相当于服务器宕机。因此网站的可用性架构还需要考虑到网站升级 发布引起的宕机。

3、高可用的应用

         应用层主要处理网站应用的业务逻辑,也称为业务逻辑层,应用的一个显著特点就是应用的无状态行,因此实现负载均衡相对简单一点。
         Web应用中将这些多次请求的上下文称为回话(Session),在单机情况下,session可部署在服务器上的Web容器上管理。在使用负载均衡 的集群环境中,由于负载均衡服务器可能会将请求分发到集群任何一台应用服务器上,所以保证每次请求依然能够获得正确的session比单机 时要复杂的多。在集群环境下,session管理主要有  以下手段。

          1、Session复制

Session复制是早期企业应用系统使用较多的一种服务器集群Session管理机制。应用服务器开启Web容器的Session复制功能,在集群中几台服务器之间同步Session对象,是每台服务器上都保存所有用户的Session信息。

        这种方案虽然简单,从本机读取Session信息也很快,但当集群规模比较大的时候会占用服务器和网站的大量资源,在大量用户访问的情况下,甚至会出现内存不够Session使用的情况。

         2、Session绑定

        Session绑定可以利用负载均衡的源地址Hash算法实现,负载均衡服务器总是将来源于同一IP的请求分发到同一台服务器上。这样在整个回话期间,用户所有的请求都在同一天服务器上处理,即Session绑定到某台特定的服务器上,保证Session总能在这台服务器上获取,这种方法有成为回话粘滞。

        3、利用Cookie记录Session

        一种管理Session的方式是将Session记录在客户端,每次请求服务器的时候,将Session放在请求中发送给服务器,服务器处理完请求后再将修改后的Session响应给客户端。

       4、Session服务器

        Session服务器,即把session的管理独立部署在某一台机器上,Web服务器不保存用户Session信息,每次都去Session服务器取数据。

        这种解决方案事实上是将应用服务器的状态分离,分为无状态的应用服务器和有状态的Session服务器。对于有状态的Session服务器,一种比较简单的方式是利用分布式缓存、数据库等。

4、高可用的服务

      可复用的服务模块为业务产品提供基础公共服务,大型网站中这些服务通常都独立分布式部署,被具体应用远程调用。可复用的服务和应用一样,是无状态的,因此可以使用类似负载均衡的失效转移策略实效高可用的服务。
      除此之外,在实践中,还有一些几点高可用的服务策略。
      1、分级管理
      2、超时设置
      3、异步调用
      4、服务降级,网站高峰期间,可以关闭一些不重要的服务,如评论。

5、高可用的数据

      保证数据存储高可用的手段主要是数据备份和失效 转移机制。
      CAP原理:即数据持久性、数据可访问性、数据一致性。

6、高可用的网站质量保证

     这里主要说下网站发布流程吧。看图即可:


 7、网站运行监控

     “不允许没有监控的系统上线”。网站运行监控对于网站运维和架构设计优化至关重要,运维没有监控的网站,犹如驾驶没有仪表的飞机。
     具体到监控哪些数据,主要有:
      1、用户行为日志收集(服务器端和浏览器端)
      2、服务器性能监控(CPU、内存等)
      3、运行数据监控(缓存命中率、平均响应延迟时间、每分钟发送邮件数目、待处理的任务总数等

    监控数据采集后,除了用作系统性能评估、集群规模伸缩性预测等,还可以根据实时监控数据进行风险预警,并对服务器进行失效转移,自动负载调整,最大化利用集群所有机器的资源。

转载于:https://my.oschina.net/zhanghaiyang/blog/592220

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

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

相关文章

使用npm打包任意网站为桌面程序

运行环境要求: macOS 10.9 / Windows / LinuxNode.js 版本>6 1.查看一下自己的版本 2.使用npm安装nativefier,这是一个star快2万的开源项目,开源地址 https://github.com/jiahaog/nativefier npm install nativefier -g 3.安装成功之后…

seo模拟点击软件_百度SEO快排原理

百度SEO快排,做SEO的我想大家都懂,这个就不普及了,从字面的意思就是针对百度的一张SEO做法,那么,有没有搜狗,360等快排呢,可以说是有的。针对谷歌快排的有没有呢?据目前了解&#xf…

seo查询工具源码_爱站SEO工具包详细介绍

爱站SEO工具-seoer的瑞士军刀!这个工具主要是为了方便SEOer查询一些网站的问题,监控关键词排名收录等等,新手老手都可以用的工具,更快的让SEOer上手。爱站seo工具相信有很多SEOer都使用过爱站SEO工具包,也有很多新入行…

12306抢票脚本 python_Python攻破12306网站,实现2020最强抢票模式!

python版本支持2.7.10 - 2.7.15依赖库依赖若快 若快注册地址:推荐用若快,打码兔平台已经关闭项目依赖包 requirements.txt安装方法-Windows:安装方法-Linux:root用户(避免多python环境产生问题): python2 -m pip install -i pip install -i -r http://re…

seo优化源码_(自适应手机版)响应式网站建设推广优化类网站织梦模板 HTML5网站运营优化推广IT运维网站源码...

模板名称:(自适应手机版)响应式网站建设推广优化类网站织梦模板 HTML5网站运营优化推广IT运维网站源码下载本套织梦模板采用织梦最新内核开发的模板,这款模板使用范围广,不仅仅局限于一类型的企业,网站建设、推广优化、IT运维类的…

selenium 鼠标悬浮_QTP以及selenium的mouseOver使用 鼠标悬停的事件很给力!

QTP对 界面上元素的鼠标悬停,弹出tips或者自动弹出窗口,需修改replaytype,既在操作之前,加入:Setting.WebPackage("ReplayType") 2 。再 .FireEvent "onmouseover" 一般是能生效的。关于QTP的replaytypeW…

html5 百度收录,百度网站收录教程(个人版)

对于网友,记基开前不接些前家我告对猿果水使钮控站来说,不管是个人还是企业的,发布到线上至少能在百度搜朋支不器几事为的时后级功发发来久都这样含制层是请些间例业多在上屏屏有到随索到才算成功让百度搜索码了体读理多者维满器备近&#xf…

axure 后台模板_大气漂亮美观的三个网站后台数据管理模板 大大提升你的开发效率...

今天整理了三个我做项目经常使用的三个网站后台模板,这三个模板都是开源的,可以下载商用,可基于它们开发任何网站,做为后台管理数据。这样能为你开发后台功能节约大量的时间。一.ok-admin 一个很赞的,扁平化风格的&…

如何搭建一个打印荣誉证书的网站_如何搭建个人网站?拥有一个个人的网站呢?分享给大家...

建站入门简介为了方便用户搭建网站,本文介绍了在华为云搭建网站的几种方式。您可以根据不同搭建方式的特点,选择合适的方式轻松搭建您的网站。建站方式华为云当前支持自助建站,通过云速建站服务建站,使用云市场的模板建站和通过云…

python 天天向上求几天数_php开发网站需要多久

php开发网站需要多久?网站的开发周期是根据客户对于网站功能的要求来定时间的,一般常规的企业站5-7天,商城或者有特殊要求的站时间是需要双方进行沟通确认来定的,大概需要二到三个月。php语言主要特点(一)开源性和免费性由于PHP的…

虚拟服务器建网站苹果cms,零基础搭建苹果cmsv10影视站教程

进入https://www.bt.cn/ 选择你的服务器系统,进行安装宝塔管理面板。(安装教程宝塔里面有)安装以centos7系统为例子安装完成会有一个登录信息安装宝塔面板完成后有一个管理地址,用管理地址进入宝塔面板管理进行建站。先进入DNS网站进行,对域名…

模拟登录12306网站

首先用火狐浏览器进入12306网站的登录界面,F12获取登录界面的url地址. 再获取验证码图片的链接及其验证码校正所post的数据 最后获取用户名和密码的登录链接及其post的数据 # codingutf-8 import requests import os#下载验证码图片 def save_image():image_url https://kyfw.…

seo从入门到精通_SEO入门书籍推荐:从入门到精通,新人必看的3本书

在这个网上学习泛滥的年代,很多人都习惯在网络上找教程学习,无论上视频教程,学习论坛,或是网上课堂等等。但也有些人还是更习惯看书学习的,很多人问我有没有好的学习SEO的书籍,那么接下来就给大家推荐几本适…

网站上的视频音乐图文,不让复制或下载?使用这5种方法轻松搞定

很多网站上的视频,音乐,图文是不支持直接下载的,如果我们很需要又不想付费该如何获取呢? 下面分享5种方法,轻松搞定,网站上的视频,音乐,图文不让复制或下载的难题! 一&…

珍藏7个不可多得的自学网站,送给正要提升自己的人,一生受益!

你还在每天庸庸碌碌的过日子吗?你不想改变下自己吗?曾近有句话说过:"知识很宝贵,就好像是金矿。学好知识,掌握好本领,会对我终身有益"。 其实网上有很多一系列的教学视频网站,我们只…

想要升职加薪?这几个骨灰级自学网站送给你,月薪5万不是问题!

有很多小伙伴都说自己的工资离自己的预期还有一定的差距,而这个差距总是不知道如何消除。今天小编将分享几个自学网站,帮助大家提升自己,工资也跟着提升~ 一、我要自学网 这个网站大家应该都是比较了解的,里面有非常多的课程供我…

java 购物网站毕业设计_基于JavaWeb的购物网站(商城)的设计与实现(SSH,MySQL)(含录像)...

基于JavaWeb的购物网站(商城)的设计与实现(SSH,MySQL)(含录像)(开题报告,毕业论文15000字,程序代码,MySQL数据库)通过这个平台,消费者足不出户就可以了解大量的商品信息,从而给消费者带来了极大的方便。基于JavaWeb的购物网站平台的主要功能包括商品分类…

在线qmc0转换mp3工具_推荐一个在线转qq、网易、酷狗、虾米加密音乐的网站

想必各位已经被各大音乐厂家折磨的生不如死了听个音乐也不让好好听版权问题咱都不说了这个音乐格式也是五花八门想听可以,充钱会员到期,抱歉,听不了所以好多民间大神纷纷出手一个网址搞定所有格式转换无需下载、也不要安装,一键批…

visualhunt - 免注册直接下载优质免费商用图片的好用网站

超过13万张免费商用的图片素材,无需注册就可以下载使用。 超过13万张免费商用的图片素材 visualhunt 是一个付费和免费图片超过3.5亿张的综合性图库,其免费商用的CC0授权的照片数量也有13万之多。这么多免费的砖也够我们搬一段时间了。 visualhunt 中的…

如何在微网站上设置在线客服QQ

很多营销型网站需要设置在线QQ客服,方便与来访网站的客户进行沟通,这样大大提高了网站客户的转化率,可以实时在线解决访客问题,那么如何在网站上设置在线的客服QQ呢,下面让我们来了解一下:方法/步骤1. 首先…