大型网站架构(二)万无一失:网站的高可用架构

本文仅供自己学习使用,本文参考自李智慧老师著的《大型网站技术架构:核心原理与案例分析》。

网站不可用也被称作网络故障。
一、高可用的网站架构
1)应用层(文库、贴吧、知道、百科)
2)服务层(账户服务、Session服务、登录服务)
3)数据层(数据库服务、文件服务、缓存服务、搜索服务)

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

1)通过负载均衡进行无状态服务的失效转移
2)应用服务器集群的Session管理


三、高可用的服务
1)分级管理(服务区分优先级,核心服务优先使用更好的资源)
2)超时设置(在应用程序中设置服务调用的超时时间)
3)异步调用(应用对服务的调用通过消息队列等异步方式完成,避免一个服务失败导致整个应用请求失败的情况)
4)服务降级(网站访问高峰,服务可能因大量的并发调用而性能下降,严重可能导致服务宕机。为了保证核心应用和服务正常运行,需对服务进行降级。降级有两种手段:拒绝服务关闭服务
5)幂等性设计(应用调用服务无法避免失败,服务重复调用也是无法避免的,因此必须在服务层保证服务重复调用和调用一次产生的结果是相同的,即服务具有幂等性。有些服务天然具有幂等性,比如将用户性别设置为男性,不管调用多少次,结果都一样)


四、高可用的数据
1)CAP原理
CAP原理认为,一个提供数据服务的存储系统无法同时满足数据一致性(Consistency)数据可用性(Availibility)分区耐受性(Partition Tolerance,系统具有跨网络分区的伸缩性)这三个条件。
2)数据备份
数据冷备(定期将数据复制到某种存储介质,磁带、光盘等)
数据热备:
a. 同步热备方式(应用程序多线程同时写操作到每一台存储服务器

b. 异步热备方式(主存储服务器通过异步线程将写操作同步到从存储服务器)

3)失效转移
数据服务器集群中任何一台服务器宕机,那么应用程序针对这台服务器所有的读写操作都需要重新路由到其他服务器,保证数据访问不会失败,这个过程就叫做失效转移。
失效转移操作有三部分组成:失效确认访问转移数据恢复


五、高可用网站的软件质量保证
1)网站发布(发布过程中,每次关闭的服务器都是集群中的一小部分,并且在发布完成后立即可以访问,因此整个发布过程不影响用户使用)
2)自动化测试
3)预发布验证(预发布服务器和线上正式服务器都部署在相同的物理环境中,可以使用相同的线上配置,依赖相同的外部服务,数据库服务等)
4)代码控制(
SVN、Git等版本控制工具)
5)自动化发布(发布脚本)
6)灰度发布(灰度发布就是每天发布一部分服务器,发现问题就回滚版本。第二天发布一部分服务器,发现问题就回滚今天发布的服务器版本。依次类推)


六、网站运行监控
1)监控数据采集
用户行为日志采集(统计网站PV/UV指标、分析用户行为、优化网站设计、个性化营销与推荐等)
服务器性能监控(收集服务器性能指标,如系统Load、内存占用、磁盘IO、网络IO、CPU、带宽等尽早做出故障预警)
运行数据报告(主要是业务相关处理数据,根据报告开发人员优化程序)

2)监控管理
系统报警
失效转移
自动优雅降级


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值