大型网站的高可用分析

如何实现高可用的网站架构 网站的可用性强调的是对最终用户的使用价值。它牵动着人们的神经,直接影响着公司的形象和利益,许多互联网公司都将网站的可用性列入工程师的绩效考核,与奖金、升迁等利益直接挂钩。 立即下载

本文主要分析网站的高可用性,从应用需求、用户角度展开分析。

1.1 高可用性

“高可用性”(High Availability) 通常用来描述一个系统,经过特殊设计,减少停止服务的时间,从而使其服务保持高度的可使用性。

计算机系统的可靠性用平均无故障时间(MTTF)来度量,即计算机系统平均能够正常运行多长时间,才会发生一次故障。系统的可靠性能越高,平均无故障时间越长。可维护性用平均维修时间(MTTR)来度量,即系统发生故障后维修和重新恢复正常运行平均花费时间。系统的可维护性越好,平均维修时间越短。计算机系统的可用性定义为:MTTF/(MTTF+MTTR)*100%。

举例来说,淘宝网在2010年成交额为300亿,则每分钟成交额为5—10万,那么对淘宝来说,其后台系统的高可用,对企业运营非常重要。淘宝数据负责人宁海元指出,淘宝系统,可用性至少需要99.999%。那么对于taobao.com系统,在一年365天,系统停止服务时间为5分15秒。

1.2 确保高可用性

高可用性的衡量指标

%availability=(TotalElapsed Time – Sum of Inoperative Times) / Total Elapsed Time

其中:

TotalElapsed Time 为系统总时间,包括可提供服务时间+停止服务时间。

Sumof Inoperative Times 为停止服务时间,包括宕机时间+维护时间。

1.2.1 如何确保高可用

可用性越高越好,提高可用性主要从一下几个方面入手:

(1)系统架构

(2)容灾性

(3)监控报警

(4)故障转移

1.2.1.1 系统架构

系统架构,指整个网站后台系统的架构。好的系统架构,主要从下面几个方面考虑:

(1)操作系统的选择,从稳定性、安全性和可维护性考虑,unix和linux性能远远好于windows,从成本考虑,Linux远远低于windows 和unix。

(2)负载均衡器的选择,硬件负载均衡器性能和稳定性高于软件负载均衡器。但成本上,软件比如haproxy、LVS优于硬件(比如F5、Netscaler)。

(3)web server的选择,Nginx优于传统的Apache。

(4)各级缓存的选择与应用,varnish、squid、memcached。

(5)网站开发语言的选择,与开发有关,主要分为需要编译性的语言和不需要编译性的语言。

(6)数据库的选择,传统的关系数据库中,Oracle优于MySQL,但Oracle收费远远高于MySQL,实际上,Oracle有两种收费模式,一种是按用户数,一种是按主机处理器个数。而MySQL有免费的版本。

(7)底层存储设备的选择,比如机械磁盘和固态硬盘的选择。

(8)避免单点故障问题,在逻辑架构上,避免单点故障,避免出现割点。

1.2.1.2 容灾性

容灾性能对系统非常重要,比如服务器因为断电,导致数据文件的不一致,因为发生自然或者非自然灾害比如火灾导致的磁盘损坏,发生数据丢失等。所以容灾很重要,主要从以下几个方面提高容灾性能:

(1)服务器热备机的部署,当发生故障后,热备机能马上使用,提供服务。这里的服务器主要指web server 、应用服务器、数据库服务器等。

(2) 数据备份,比如做定期备份、热备份、增量备份,甚至需要做主从备份,来提高抗灾性能。并且从底层存储设备上进行备份,比如做RAID。

(3) 做双线网络交换,尽量优化设计网络,避免因为核心交换机故障,而影响服务。网络上避免单点故障。

 

1.2.1.3 监控报警

监控是指对在线服务和非服务的在线服务器和相应的进程进行状态检测,当出现宕机或者某项服务进程僵死之后,能够在尽量短的时间获得该信息,然后通过报警系统将信息发送到一线运维人员。所以,监控报警,直接影响宕机时间。监控报警,主要从以下几个方面展开:

(1)  监控主机CPU使用情况,负载情况。

(2)  监控主机内存使用情况。

(3)  监控主机IO外设,主要以磁盘为主。如磁盘的读写、磁盘使用量等。

(4)  监控主机网卡使用情况。网卡是否损坏,是否招到DDOS攻击。

(5)  监控应用进程,包括web server ,应用服务器等。

(6)  监控数据库使用情况。包括用户的请求数、缓存使用量等。

(7)  监控交换设备的使用情况。网络入、出的流量。

(8)  监控IDC机房温度、湿度等。

(9)  防火墙、入侵检测等安全检测、监控等。

通过上面的各项监控、得到相应数值,应用监控绘图软件,把相应的数值绘画出来,现有监控绘图软件有mrtg、cacti、nagios等。然后设置一个报警阈值,如果超过该阈值,那么通过报警系统,比如短信、msn、邮件、甚至是声音完成报警功能。典型的报警系统如图3-2-1-3所示。


                                                                                     图3-2-1-3

如图3-2-1-3所示,监控服务器从servers上收集系统信息,如果发现系统的某项状态指数超过预设的阈值,则发送邮件到运维人员。同时,把相应的报警信息发送到短信运营商的短信网关服务器,然后短信网关服务器发送短信到运维人员手机中,完成短信报警。上述报警过程,传送邮件报警信息,是基于TCP/IP协议,而传送短信报警信息,是基于gprs网络。

 

1.2.1.4 故障转移

故障转移是指,当对用户提供服务的服务器或者相应的应用进程发生故障后,比如服务器宕机、进程僵死之后,备用服务器能够在尽量短的时间内启用,提供服务。这样能够最大限度减少损失,保证用户的正常服务。所以,做好故障转移,要解决以下两个问题:

(1)  实时监测故障问题。

(2)  准确快速切换服务器问题。

针对不同层次的服务,监测机制也不同,详细情况,在3.2.1.3已经阐述。下面主要论述一下故障切换问题。

故障切换包括负载均衡器的故障切换、主机os的故障切换、web server的故障切换、应用进程的故障切换、数据库的故障切换、存储系统的故障切换、DNS的故障切换、交换设备的故障切换等。下面主要分析进程僵死的故障转移和服务器宕机的故障转移。

进程僵死故障转移案例,常见的web server僵死故障转移如图3-2-1-4所示。


                                                                                    图3-2-1-4-1

如图3-2-1-4-1所示,当主机172.29.141.112的web server 对外提供服务时,通过在主机172.29.141.113上部署监控程序Monitor_nginx.sh来监控主机172.29.141.112上面的web server进程运行情况,一旦发现172.29.141.112上web server停止服务,马上报警,先更改172.29.141.113的ip地址为172.29.141.112,再启用其自身的web server,完成故障转移。此外,也可以在两服务器上同时部署监控程序Monitor_nginx.sh,完成互相监控。

 

服务器宕机故障转移案例,常见的服务器宕机故障转移,如图3-2-1-4-2所示。


                                                                 图3-2-1-4-2

如图3-2-1-4-2所示,服务器A和服务器B同时部署,但服务器A提供服务,而服务器B作为热备机。监控系统单独部署。当服务器A宕机之后,监控系统会检测到这一信息,然后通过浮动更改服务器B的ip地址,完成故障切换。

 

1.3 本文小结

本文主要阐述了网站后台系统的高可用性,分析了高可用性的定义和应用需求,重点阐述了如何做到高可用。通过从不同应用级别,如主机、存储、网络、外设、数据库、安全等各个级别进行分析,最后详细论述了web server的故障转移和主机系统的故障转移。

squidpy 教程 1:在 AnnData 和 Squidpy 中导入空间数据 这些是 10x Genomics Visium 的 Space Ranger 输出提供的 keys,因此是第一个被采用的 keys。在这种情况下,我们假设空间坐标与像素具有相同的比例,因此我们将该值设置为 1。为此,我们将使用模拟数据集,并通过示例展示您应该注意的重要细节,以便利用 AnnData-Scanpy-Squidpy 生态系统的全部功能。并不是绝对必要的,但会节省您大量的输入,因为它是 Squidpy 和 Scanpy 的默认值。正如你所看到的,空间坐标被缩小了,图像被“放大”了。 阅读详情

相关推荐

全局子程序 参数调用

为什么要子程序: 为了实现程序结构化,我们尽量使用不同功能的功能块来实现一些特定的功能, 子程序接口: 使用过程的注意事项,尤其是数组使用时的注意事项 从一个主程序中可以将参数传递到局部或全局子程序和函数中。 怎样传递参数有 2 种方式: 作为 IN 参数 变量值在主程序中保持不变。 这种传递方式也称为“ 值传递 (Call by Value)”。 作为 OUT 参数 子程序读取并更改该值,然后将新值写回到主程序中。 这种传递方式也称为“Call by Reference”。 举例说明 1 DEF MY

Eric_Yang1024的博客 1095

网站如何高可用

1.前后端分离:可以使用更加轻量级的web容器如nginx部署静态资源,实现真正的前后端解耦;且可以同时水平扩展前后端服务器;减少后端服务器的并发/负载压力,即使后端服务暂时超时或者宕机了,前端页面也会正常访问,只不过数据刷不出来而已。 2.拆分微服务,拆分后的服务支持分布式多实例(集群)部署,从而达到按需扩展的目的,在应对突发的流量暴增时,如营销活动等,可以迅速按需扩展,提高站点的可用性。 ...

我的博客 540

可信数据空间关键技术和功能架构研究

可信数据空间(TDS)是实现数据安全共享的基础设施,通过数字合约和使用控制技术确保数据跨域流通的可信与安全。其架构包括服务平台和接入连接器,关键技术涵盖访问控制、隐私计算、区块链等。评估重点在于合规性、连接器能力、互联互通及安全体系。核心在于构建规则引擎而非简单数据汇聚,连接器开发比平台建设更重要。当前面临技术成本博弈、跨域身份互认等挑战,需平衡安全、性能与成本,推动数据要素市场发展。

逸尘的专栏 2222

网站高可用架构设计——服务高可用

接口级故障的典型表现就是系统并没有宕机,网络也没有中断,但业务却出现问题了。例如,业务响应缓慢、大量访问超时、大量访问出现异常(给用户弹出提示“无法连接数据库”),这类问题的主要原因在于系统压力太大、负载太高,导致无法快速处理业务请求,由此引发更多的后续问题。例如,最常见的数据库慢查询将数据库的服务器资源耗尽,导致读写超时,业务读写数据库时要么无法连接数据库、要么超时,最终用户看到的现象就是访问很慢,一会访问抛出异常,一会访问又是正常结果。

qq_39403646的博客 1940

无法找到来自源 nvlddmkm 的事件 ID 14 的描述

具体错误是: 无法找到来自源 nvlddmkm 的事件 ID 14 的描述。本地计算机上未安装引发此事件的组件,或者安装已损坏。可以安装或修复本地计算机上的组件。 出现这样错误的原因有很多了,有可能是硬件有可能是软件。由于我是刚配置的电脑,起初非常怀疑是自己组装的问题,折腾了好久,心态爆炸!!!先说我报这样错误的情况,以及解决办法,供后面人参考。 ...

SeventhBlue 6万+

Ansys Lumerical FDTD硬件配置避坑指南:从RTX 4090到A100的GPU选择实战

本文针对Ansys Lumerical FDTD仿真计算,深入分析了从消费级RTX 4090到专业级A100的GPU硬件配置选择。文章指出,选择的关键在于显存容量能否容纳仿真模型,并对比了二者在显存、双精度算力及多卡扩展性上的核心差异,为不同预算和仿真规模的用户提供了实战避坑指南与配置建议。

weixin_29196891的博客 273

网站架构的高可用性总结

一、产品发布与测试: 1、产品的发布测试:自测---公测--预发布测试---典型逻辑案例测试---正式发布(灰度发布); 2、互联网产品一周发布一次,机制:每周四发布(前三天产品研发,周四发布,如有问题,周五解决问题;); 3、灰度发布测试,采取部分服务器先发布,没有任何问题,产品在所有服务器上部署;(AB版本测试); 4、自动化测试(目前研发团队实力无法做大,期待更完善的研发团...

dl81329的博客 250

IEC61850客户端连接实战:CMS vs MMS协议抓包对比与性能初探(基于YX-PIS协议栈)

本文深入探讨了IEC61850客户端连接中CMS与MMS协议的抓包对比与性能优化。通过Wireshark抓包分析、协议栈配置实战和性能基准测试,揭示了两种协议在连接建立、数据交互和性能调优方面的关键差异,为智能电网自动化系统的协议选择提供了实用指南。

weixin_29209805的博客 215

大型网站技术架构:核心原理与案例分析——高可用

高可用的应用 应用层的显著特点是无状态性,所谓无状态的应用是指应用服务器不保存业务的上下文信息,而仅根据每次请求提交的数据进行相应的业务逻辑处理,多个服务实例之间完全对等,请求提交到任意服务器,处理结果都是完全一样的。 通过负载均衡进行无状态服务的失效转移 应用服务器集群的Session管理 业务总是有状态的,在交易类的电子商务网站,需要有购物车记录用户的购买信息,用户买次购买请求都是向购物车中添加商品等。Web应用中将这些多次请求修改使用的上下文对象称为会话Session,单机情况下,Session可..

肥叔菌的博客 5521

Claude Code 100个真实案例 - 用AI绘制CAD机械图纸(工程师看了直呼内行)

本案例展示如何使用 Claude Code 配合 Python 的 `ezdxf` 库,从零开始生成专业级 CAD 机械图纸。我们将绘制一个完整的法兰盘零件图,包含主视图、俯视图、标注尺寸、粗糙度标记和标题栏,最终生成标准 DXF 文件,可直接在 AutoCAD 或 FreeCAD 中打开编辑。

yueyeguzhuo的专栏 894

【华为OD机试真题 新系统】1021、API请求日志去重分析 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)

【华为OD机试真题 新系统】1021、API请求日志去重分析 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2026e卷,od机试,2026E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2026华为od,如何备

KJ.JK 145

大型网站技术架构·核心原理与案例分析 第五章·万无一失:网站的高可用架构思维导图

万无一失:网站的高可用架构思维导图

LoveLifeAndLoveCode的博客 574

使用R语言整理GEO数据的简易教程

本教程介绍了使用R语言从GEO数据库下载数据并进行数据整理的基本步骤。根据实际研究问题,你可能需要进行更复杂的数据处理和分析。R语言作为一种强大的生物信息学工具,为GEO数据的整理、分析和可视化提供了丰富的功能和工具。希望这个教程能够帮助你入门GEO数据整理和R语言的应用。如果你在使用过程中遇到问题,或需要进一步的指导,请随时向我询问。祝你在GEO数据分析的旅程中取得成功!

Mrrunsen的博客 3742

大型网站技术架构:核心原理与案例分析—第五章:万无一失:网站的高可用架构

第四章:瞬时响应:网站的高性能架构 1,性能测试指标 1)响应时间 从发出请求开始到收到最后响应数据所需要的时间 2)并发数 指系统能够同时处理请求的数目,这个数字也反映了系统的负载特性,对于网站而言,并发数即网站并发用户数,指同时提交的用户数目 网站系统用户数>网站在线用户数>网站并发用户数 3)吞吐量 单位时间内系统处理的请求数量,体现系统的整体处理能力,对于网站,可以用“请

爱代码也爱生活 730

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

《大型网站技术架构:核心原理与案例分析》拜读总结,第五章——万无一失:网站的高可用架构

一:高可用的网站架构: 主要目的:保证服务器硬件故障时,服务依然可用,数据已然能够被保存,访问。 主要手段:数据和服务的冗余备份及失效转移,一旦某些服务器宕机,将服务切换到其他可用服务器上,若磁盘损坏,则从备份磁盘读取。 分层模型:应用层,服务层,数据层 分别部署在不同的服务器集群上。 应用层:为应对高并发访问请求,通过负载均衡设备将一组服务器组成一个集群。 服务层:也通过集群的方式

zhuyong7的博客 485

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

大型网站架构之我见

大型网站技术架构前言一、读本推荐二、自我所见1.书本内容1.第一部分(初入技术)2.第二部分(技术)2.读入数据悟道(未来之我见) 前言 我写这篇博客的真正原因是我最近在研究秒杀系统的技术,以及最近机缘巧合下拜读李智慧教授的《大型网站技术架构:核心原理与案件分析》,我认为可以写一篇简单的读后感博客让那些根本没有基础的人来比较直白直观地认识当今大型网站架构的有趣。这也许能打开你对于做一个架构师的向往,反正对我来说我的目标就是一个架构师(博主并不是一个架构师,只是一个初入web开发的小白,我在做的可能是我很喜

weixin_43310933的博客 1492

《大型网站技术架构:核心原理与案例分析》读书笔记-高可用

万无一失:网站的高可用架构 1.网站可用性的度量 网站的页面能完整呈现在最终用户面前,需要经过很多个环节,任何一个环节出了 问题,都可能导致网站页面不可访问。DNS会被劫持、CDN服务可能会挂掉、网站服务 器可能会宕机、网络交换机可能会失效、硬盘会损坏、网卡会松掉、甚至机房会停电、 空调会失灵、程序会有Bug、黑客会攻击、促销会引来大量访问、第三方合作伙伴的服务 会不可用……要保证一个网站永远...

weixin_30820151的博客 186

037.大型网站技术架构

[b]# 037.大型网站技术架构[/b] 《大型网站技术架构》核心原理与案例分析。 李智慧,电子工业出版社,ISBN-9787121212000 @史荣久 / 2015-04-08 / CC-BY-SA-3.0 [b]## 【前11张】 页码之前[/b] 【好评来袭】「最接地气」,「面试官们怎么办?」, 「实用性和前瞻性」,「互联网基因」,「架构演进」, ...

A9 = (trydofor|moilioncircle).com 266

构建一个高性能、高可用的大型分布式网站

大型网站的特点 大型网站一般有如下特点: 用户多,分布广泛 大流量,高并发 海量数据,服务高可用 安全环境恶劣,易受网络攻击 功能多,变更快,频繁发布 从小到大,渐进发展 以用户为中心 免费服务,付费体验 大型网站架构目标 大型网站的架构目标有如下几个: 高性能:提供快速的访问体验。 高可用:网站服务一直可以正常访问。 可伸缩:通过硬件增加/减...

weixin_34128839的博客 636

大型网站技术架构·核心原理与案例分析思维导图

大型网站技术架构·核心原理与案例分析思维导图 大型网站技术架构·核心原理与案例分析 第一章·大型网站架构演化思维导图 大型网站技术架构·核心原理与案例分析 第二章·大型网站架构模式思维导图 大型网站技术架构·核心原理与案例分析 第三章·大型网站核心架构要素思维导图 大型网站技术架构·核心原理与案例分析 第四章·瞬时响应:网站的高性能架构思维导图 大型网站技术架构·核心原理与案例分析 第五章·万无一...

LoveLifeAndLoveCode的博客 620

《大型网站技术架构-核心原理与案例分析》学习笔记(五):高可用架构

一、可用性的度量与考核 业界通常用多少个9来衡量网站的可用性。 标准 难度不可用时间 99% 小于88小时 基本可用 99.9% 小于9小时 较高可用 99.99% 小于53分钟 具有自动恢复能力的高可用 99.999% 小于5分钟 极高可用性 二、可用性架构 1,应用层 使用负载均衡设备将一组服务器组成一个集群共同对外提供服务,通过心跳检测等手段监控到服务器不可用时,将服务器删除,并将请求分发到集群其它服务器,从而.

bt_xxx的博客 294
上一篇: 瞬时响应:网站的高性能架构
下一篇: 大型网站的监控、报警与故障转移
kobejayandy
博客等级 码龄18年 2853粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值