网站的高可用架构

大型网站架构核心要素之可用性:高可用架构 前言 上节我们讲了网站核心要素之性能,这节我们接着讲第二个核心要素可用性,网站的可用性,描述的是一个网站是否可以正常使用的特性,这个特性是比较关键的,直接影响公司形象和利益,因此也有很多大公司把这点作为技术人员的绩效考核之一。既然那么重要,那么我们就好好的谈一谈如何构建一个高性能网站架构,我们将从如下几个大方面展开讨论:度量与考核、网站架构高可用、应用高可用、服务高可用、数据高可用、软件质量保证、运行监控。 网站可用性的度量与考核 网站可用性度量:网站不可用又称为网站故障,通常用多少个9来衡. 阅读详情

应用层通过负载均衡设备将一组服务器组成一个集群共同对外提供服务,负载均衡设置通过心跳检测等手段检测到某台应用服务器不可用时,就将其从集群列表剔除,从而使整个集群保持可用。

服务层与应用层类似,只是这些服务器被应用层通过分布式服务调用框架访问,分布式服务调用框架会在应用层客户端程序中实现软件负载均衡,并通过服务注册中心对提供服务的服务器进行心跳检测。

 

高可用的应用

应用层主要处理网站应用的业务逻辑,也被称为业务逻辑层,应用层一个显著的特点就是无状态性。这样的特点为负载均衡进行无状态服务的失效转移提供了支持。

Session管理

应用服务器的高可用架构设置主要基于服务无状态这一特性,但是业务总是有状态的。比如用户的Seesion数据,集群环境下有如下几种Session管理措施。

① session 复制

将session复制到每一台应用集群服务器中,但当集群规模越来越大时,同步Session的成本也会越来越高。

② session绑定

Session绑定可以利用负载均衡的源地址Hash算法实现,负载均衡服务器总是将同一IP的请求分发到同一台服务器上,这样一个用户的Session就绑定再某台特定的服务器上,但是当这台服务器宕机后,用户切换到其他服务器上回因为没有Session导致业务无法完成。

③ 利用Cookie记录Session

这个方案是将本该服务端存储的Session信息,下发到Cookie中,并存入浏览器,但是同样存在问题:cookie的大小限制,能记录的信息有限。

④ Session 服务器

利用独立部署的Session服务器集群统一管理Session,应用服务器每次读写Session时,都访问Session服务器。这种解决方案事实上是将应用服务器的状态分离。分为无状态的应用服务器和有状态的Session服务器,然后针对这两种服务器的不同特性分别设计其架构。

 

高可用的服务

可复用的服务和应用一样,也是无状态的服务,因此可以使用类似负载均衡的失效转移策略实现高可用的服务。

分级管理

运维上将服务器进行分级管理,核心应用和服务优先使用最好的硬件。

超时设置

为避免服务器宕机,线程死锁等原因导致请求长时间得不到响应,同时还占用应用程序资源,应在应用程序中设置超时时间,一旦超时,通信框架抛出异常,应用程序根据服务调度策略,可继续重试或将请求转移到其他服务器上。

异步调用

已经提到多次,此处不再重复

服务降级

在网站访问高峰期,为了保证核心应用和功能的正常运行,需要对服务进行降级,降级有两种手段:拒绝服务和关闭服务。

幂等性设计

必须在服务层保证服务重复调用和调用一次产生的结果相同,即服务具有幂等性。

 

高可用的数据

CAP原理

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

数据一致性可分为如下几点

① 数据强一致

各个副本的数据在物理存储上总是一致的

② 数据用户一致

即数据在物理存储中的各个副本数据可能不一致,但是终端用户访问时,通过纠错和校验机制,可以确定一个一致切正确的数据返回给用户。

③ 数据最终一致性

这是数据一致性中较弱的一种,即物理存储的数据可能不一致,终端用户访问到的数据也是不一致的,但系统通过一段时间的自我恢复和修正,数据最终会达到一致。

数据备份

数据备份分为冷备份和热备份,冷备份就是定期的将数据复制到某种存储介质上并物理存档保管,缺点是不能保证数据最终一致性,并且当数据需要从庞大的磁盘中恢复过来时,需要很长一段时间,这段时间内也无法访问数据,因此也不能保证数据可用性。

热备份可分为两种:异步热备份和同步热备份。

最典型的异步热备份就是数据库的主从同步,主存储服务器的写操作代理模块将数据写入本机存储系统后立即返回写操作成功响应,然后通过异步线程将写操作数据同步到从存储服务器。异步热备份并不能保证数据同步到所有的备份当中。

同步热备份实现时,应用程序并发向多个存储服务器同时写入数据,等待所有的写操作都完成了,才返回操作成功响应,传统企业级关系型数据库系统几乎都提供了数据实时同步备份的机制。

失效转移

① 失效确认

系统确认一台服务器是否宕机的手段有两种:心跳检测和应用程序访问失败报告。

② 访问转移

确认某台服务器宕机后,就需要将数据读写重新路由到其他服务器上。

③ 数据恢复

某台服务器宕机后,数据存储的副本数量就会减少,必须将副本数目恢复到系统设置的值。

 

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

网站发布过程

为了减少对客户的影响,网站的发布可以通过关闭负载均衡上一小批的服务器路由,然后将代码同步到这些服务器上,同步完成后再打开这些服务器路由,多次循环的发布一小批应用服务器直至所有服务器上的代码都已经是最新的,此时发布完成。

自动化测试

continue......

预发布验证

预发布服务器是一种特殊用途的服务器,它和线上的正式服务器唯一的不同就是没有配置到负载均衡服务器列表中,外部用户无法访问。因此可以通过在预发布环境上验证功能是否正确。

代码控制

主要是合理高效实用git的分支功能。

自动化发布

continue.....

灰度发布

恢复发布与上面所说的网站发布流程异曲同工,都是每次发布代码到部分服务器,然后在一段时间内观察服务器的运行状态。

 

以上就是构建一个高可用的架构所必须考虑的

 

此文主要参考《大型网站技术架构》一书的内容

Logstash安装部署 1. 部署及安装所用的用户不能是root。 阅读详情

相关推荐

【SLAM论文笔记】SplaTAM论文小结

参考方法有ORB-SLAM3、Point-SLAM、NICE-SLAM、Kintinuous、ElasticFusion,测试数据集有ScanNet++、Replica、TUM-RGBD、Orig-ScanNet,SpaTAM并未在全部对比均为第一,表现最佳的是在ScanNet++、Replica,ScanNet++上SplaTAM方法位姿精度比第2名ORB-SLAM3高两个数量级,在TUM。上无稀疏SLAM结果,NICE-SLAM与Point-SLAM占优。SplaTAM基本做到了SOTA。

持之以恒 1011

高可用性架构

1. 高可用性架构 高可用性是指一个系统经过专门的设计后具备的减少停工时间并能持续保持提供服务的高可用性质。该特性是衡量系统提供服务能力的一个特征,也是对系统进行设计时需要考虑在内的一个重要因素。 ...

Serendipity_Shy 6980

注册电气工程师详细教材

注册电气工程师详细教材

qq_40844444的博客 4257

高可用架构

高可用架构

weixin_61428407的博客 1756

逆向分析美团外卖mtgsig3.0签名算法:从抓包到算法还原实战

在移动应用开发与安全领域,API接口签名是保障数据传输完整性与身份验证的核心机制。其基本原理是通过特定的算法,将请求参数、时间戳等数据与密钥结合,生成唯一的签名串,服务器通过验证签名来识别请求的合法性。这项技术的核心价值在于防止数据篡改、重放攻击和未授权访问,是构建安全客户端-服务器通信的基石。在实际应用中,签名算法广泛应用于电商、社交、金融等各类App的接口保护场景。本文以美团外卖App的mtgsig3.0签名为具体案例,详细拆解了其生成逻辑。通过结合Frida动态调试与Jadx静态分析,文章深入探讨了如

weixin_29325515的博客 1250

PCIe设备内存访问实战:从ioremap到DMA映射的完整流程解析

本文深入解析了PCIe设备内存访问的完整流程,涵盖从CPU通过ioremap访问设备寄存器,到设备通过DMA映射高效读写主机内存的核心机制。详细探讨了虚拟地址、物理地址与总线地址的转换关系,对比了一致性与流式DMA映射的适用场景及同步要点,并阐述了IOMMU在安全与效率中的作用,为驱动开发者提供了实战代码与关键陷阱分析。

weixin_29201933的博客 506

高可用架构设计

存储高可用方案的本质都是通过将数据复制到多个存储设备,通过数据冗余的方式来实现高可用,其复杂性主要体现在如何应对复制延迟和中断导致的数据不一致问题。因此,对任何一个高可用存储方案,我们需要从以下几个方面去进行思考和分析:数据如何复制?各个节点的职责是什么?如何应对复制延迟?如何应对复制中断?常见的高可用存储架构有主备、主从、主主、集群、分区,每一种又可以根据业务的需求进行一些特殊的定制化功能,由此衍生出更多的变种。

sinat_34814635的博客 3329

在overleaf中使用bibtex引用参考文献

最近在挑选写tex的平台,挑来挑去,个人感觉overleaf给我带来的体验感是最舒适的。不过由于对内部的文件组织和make进行了一层封装,所以与一般的本地平台编译tex会有一点不同。此处写一下在overleaf中使用bibtex的方法。 在tex中使用bibtex引用文献是一件很舒适的事,毕竟这是tex的优点之一(要是tex比word难用,我干什么不去用word,hhh) 第一步,我们创建一个.bib文件,名字随便起,我这边起为reference.bib。 然后打开谷歌学术,搜索你想要引用的文章,并找到

锦恢的博客 4万+

高可用架构模式

架构里比较重要的是高性能、高可用、高扩展性。上次是高性能,这次是高可用。对一般的项目而言,高可用主要用公司提供的基建,如多机房部署、主从等。但有些项目确实需要思考更多高可用的事项,如资源不足的情况下要做好限流或者降配(以前做抢购和秒杀梳理出了所有限流和降配方案,分了一二级处理),有的是同时支持普通版和付费版,需要不同的集群部署,提供不同的资源容量。

1515

2D Nesting Defining a CSV File of Part Data

若。

qq_36560674的博客 1851

javascript 酷炫时钟

javascript 酷炫时钟

liuhao9999的博客 631

什么是高可用架构

在运维中,经常听到高可用,那么什么是高可用架构呢?通俗点讲,高可用就是在服务故障,节点宕机的情况下,业务能够保证不中断,服务正常运行。举个例子,支付宝,淘宝商城,24小时不间断的有人支付或者购物,如果服务器宕机就造成了支付宝不能转账,网站不能访问,那么造成的损失是可想而知的。对于商业合作来说,不稳定的系统也不会有人相信和使用。

m0_37680131的博客 926

MicroCap声学仿真介绍(二)-创建声学仿真元件

声学库里包含孔、管、障板辐射器等器件,我们只需要按照仿真的需求,将声学库里的器件排列好,输入参数,用线连接起来即可。这里我们用D指代孔的直径,L指代孔的长度,N代表孔的数量。26.在弹出的界面中做如下设置:需要先在右面的选框里找到对应的项,然后右键Add Part,再之后就如下设置。3.在弹出的界面中,选择“Macro file(.mac)”,并点击右上角的“OK”下面就以声学仿真中常见的“孔”来做示例,跟大家一块演示一下宏程序的新建。10.在上图中“Value”中填入“R”,然后点击左边的“OK”按钮;

山无忧的博客 2201

11 高可用的网站架构

通常企业级应用系统为提高系统可用性,会采用较昂贵的软硬件设备,如IBM的小 型机乃至中型机大型机及专有操作系统、Oracle数据库、EMC存储设备等。互联网公司 更多地采用PC级服务器、开源的数据库和操作系统,这些廉价的设备在节约成本的同时 也降低了可用性,特别是服务器硬件设备,低价的商业级服务器一年宕机一次是一个大 概率事件,而那些高强度频繁读写的普通硬盘,损坏的概率则要更高一些。 既然硬件故障是常态,网站的高可用架构设计的主要目的就是保证服务器硬件故障 时服务依然可用、数据依然保存并能够被访问。 实.

water Wang 3573

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

网站高可用架构

一、网站分层架构 二、高可用的应用 三、高可用的服务 四、高可用的数据 五、网站软件质量保证 六、网站运行监控 七、网站可用性度量与考核

左直拳的马桶_日用桶 858

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

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

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

weixin_34383618的博客 204

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

五、网站的高可用架构

  5.1 网站可用性的度量与考核     网站的可用性描述网站可有效访问的特性。     网站的页面能完整呈现在用户面前,需要经过很多环节,任何一个环节出问题,都会导致网站页面不可访问。     DNS会被劫持、CDN服务可能会挂掉、网站服务器可能会宕机、网站交换机可能会失效、硬盘会损坏、网卡会松掉、机房会停电、空调会失灵、程序会有Bug、黑客会攻击、促销引来大量的访问、第...

weixin_30388677的博客 222

大型网站架构阅读(五)网站架构高可用

可用性概述: 网站的可用性( Availability)描述网站可有效访问的特性(不同于另一个网站运营指标: Usability,通常也被译作可用性,但是后者强调的是网站的有用性,即对最终用户的使用价值),相比于网站的其他非功能特性,网站的可用性更牵动人们的神经,大型网站的不可用事故直接影响公司形象和利益,许多互联网公司都将网站可用性列入工程师的绩效考核,与奖金升迁等利益...

喝醉的咕咕鸟 516

架构:高可用的网站架构——应用层、服务层、数据层。

通常企业级应用系统为提高系统可用性,会采用较昂贵的软硬件设备,如IBM的小型机及至中型机大型机及专有操作系统、Oracle数据库、EMC存储设备等。互联网公司更过的采用PC级服务器、开源的数据库和操作系统,这些廉价的设备在节约成本的同时也降低了可用性,特别是服务器硬件设备,低价的商业级服务器一年宕机一次是一个大概率事件,而那些高强度频繁读写的普通硬盘,损坏的概率则要更高一些。

孤芳不自赏 4万+

网站高可用架构设计基础

不要尝试着去避免故障,而是要把处理故障的代码当成正常的功能做在架构里写在代码里。高可用是一种面向风险设计,使系统具备控制风险,提供更高的可用性的能力。网站页面能完整呈现在最终用户面前,需要经历很多环节,任何一个环节出现了问题出了问题,都可能导致网站页面不可访问,所以在架构设计的时候很可能遗漏某个环节的高可用设计,这也就让那个高可用变成了最为复杂的架构设计点。架构的高可用,就意味着实现系统中所有元素、连接的高可用。在用户眼里,业务永远是正常(或基本正常)对外提供服务的。

qq_39403646的博客 1155

大型网站技术架构 读书笔记 (五) 网站的高可用架构

1. 网站可用性的度量与考核 1.1 网站可用性度量 网站不可用时间(故障时间)=故障修复时间点网故障发现(报告)时间点 网站年度可用性指标=(11网站不可用时间/年度总时间)年100% 1.2 网站可用性考核 可用性指标是网站架构设计的重要指标,对外是服务承诺,对内是考核指标。从管理层面,可用性指标是网站或者产品的整体考核指标,具体到每个工程师的考核,更多的是使用故障分。 2. 高可用的网站架构 3. 高可用的应用 3.1 通过负载均衡进行无状态服务的失效转移 负载均衡,顾名思义,主要使用在业务量和数据

xueguchen的博客 1162
上一篇: 网站的高性能架构
jj_jameholl
博客等级 码龄10年 5粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值