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

既然硬件故障是常态,网站的高可用架构设计的主要目的就是保证服务器硬件故障 时服务依然可用、数据依然保存并能够被访问。

实现上述高可用架构的主要手段是数据和服务的冗余备份及失效转移,一旦某些服 务器宕机,就将服务切换到其他可用的服务器上,如果磁盘损坏,则从备份的磁盘读取 数据。
一个典型的网站设计通常遵循如图5.2所示的基本分层架构模型。

典型的分层模型是三层,即应用层、服务层、数据层;各层之间具有相对独立性, 应用层主要负责具体业务逻辑处理;服务层负责提供可复用的服务;数据层负责数据的 存储与访问。中小型网站在具体部署时,通常将应用层和服务层部署在一起,而数据层 则另外部署,如图5.3所示(事实上,这也是网站架构演化的第一步)。

在复杂的大型网站架构中,划分的粒度会更小、更详细,结构更加复杂,服务器规 模更加庞大,但通常还是能够把这些服务器划分到这三层中。如图5.4所示。

不同的业务产品会部署在不同的服务器集群上,如某网站的文库、贴吧、百科等属 于不同的产品,部署在各自独立的服务器集群上,互不相干。这些产品又会依赖一些共 同的复用业务,如注册登录服务‘Session管理服务、账户管理服务等,这些可复用的业 务服务也各自部署在独立的服务器集群上。至于数据层,数据库服务、文件服务、缓存 服务、搜索服务等数据存储与访问服务都部署在各自独立的服务器集群上。

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

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

位于服务层的服务器情况和应用层的服务器类似,也是通过集群方式实现高可用, 只是这些服务器被应用层通过分布式服务调用框架访问,分布式服务调用框架会在应用 层客户端程序中实现软件负载均衡,并通过^务注册中心对提供服务的服务器进行心跳检 测,发现有服务不可用,立即通知客户端程序修改服务访问列表,剔除不可用的服务器。

位于数据层的服务器情况比较特殊,数据服务器上存储着数据,为了保证服务器宕 机时数据不丢失,数据访问服务不中断,需要在数据写入时进行数据同步复制,将数据 写入多台服务器上,实现数据冗余备份。当数据服务器宕机时,应用程序将访问切换到 有备份数据的服务器上。

网站升级的频率一般都非常高,大型网站一周发布一次,中小型网站一天发布几次。 每次网站发布都需要关闭服务,重新部署系统,整个过程相当于服务器宕机。因此网站 的可用性架构设计不但要考虑实际的硬件故障引起的宕机,还要考虑网站升级发布引起 的宕机,而后者更加频繁,不能因为系统可以接受偶尔的停机故障就降低可用性设计的标准。

11 高可用的网站架构相关推荐

  1. 阿里双11高可用架构演进之路

    阿里巴巴平台的业务规模在过去的8年呈指数级增长,给双11所带来的技术挑战是世界性的,特别是如何在零点峰值到来时确保系统的稳定性.零点技术挑战的本质是用有限的成本去实现最大化的集群整体吞吐能力和最佳的用 ...

  2. 分布式架构中常见理论以及如何才能设计出高可用的分布式架构?

    分布式架构中常见理论以及如何才能设计出高可用的分布式架构? 一.前言 我们就来聊一聊目前主流的分布式架构以及分布式架构中常见理论以及如何才能设计出高可用的分布式架构好了.分布式架构中,SOA和微服务架 ...

  3. 架构面试精讲第四节 高并发下高可用、高性能架构详解

    15 如何向面试官证明你做的系统是高可用的? 我们已经用了五个模块分别讲了架构原理.分布式技术.中间件.数据库,以及缓存,这些都是面试中必考的技术领域和技术点,又因为我们处在大数据和互联网时代,所以高 ...

  4. 徐雷FrankXuLei受邀为中国南方电网集团《分布式高并发Web网站架构》课程

    非常荣幸受邀为中国南方电网云电 讲授<分布式高并发Web网站架构>课程感谢大家,都是缘分,10年前我曾经随公司去云南大学校园招聘,现场同学们 学习新技术的热情很高,公司领导比较重视技术人才 ...

  5. Java SaaS高可用集群架构与微服务架构分析

    可能大部分读者都在想,为什么在这以 dubbo.spring cloud 为代表的微服务时代,我要还要整理这种已经 "过时" 高可用集群架构? 本人工作上大部分团队都是 7-15 ...

  6. 现阶段Java高可用集群架构与微服务架构的简单分析

    一.如何选择 1.高可用集群 适用于中小型创业公司项目架构,小型技术团队快速迭代版本发布部署需求,前期低成本运行,爆发时可通过投入适量成本横向扩容服务器抗压. 特点: 前期技术开发成本低 一定的服务器 ...

  7. Redis 如何使用 Twemproxy 和 Sentinel 构建高可用集群架构?

    文章目录 Redis 如何使用 Twemproxy 和 Sentinel 构建高可用集群架构? 配置环境 构建 RedisSharding1 安装 Redis 配置 RedisSharding1 构建 ...

  8. Redis基础与高可用集群架构进阶详解

    一.NoSQL简介 1.问题引入 每年到了过年期间,大家都会自觉自发的组织一场活动,叫做春运!以前我们买票都是到火车站排队,后来呢,有了 12306,有了它以后就更方便了,我们可以在网上买票,但是带来 ...

  9. 高可用 Redis 服务架构分析与搭建

    基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较mysql而言,速度有数量 ...

最新文章

  1. sp_MSforeachtable使用方法
  2. FILA之后又有Amer,安踏能成为“世界的安踏”吗?
  3. Liunx 重新mount
  4. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 2丨连续出现的数字【难度中等】
  5. VMware共享文件夹Input/output error解决办法
  6. JavaScript函数的返回值
  7. gaussian软件linux下载,Gaussian软件下载地址及安装说明
  8. 【光学】基于matlab模拟单缝夫琅禾费衍射
  9. python导入openpyxl_python系列之(6)Python使用Openpyxl操作Excel
  10. Wifidog扫盲篇
  11. Python实验报告 实验15 - 体育竞技分析
  12. Resid------set
  13. 操作系统解决吸烟者问题
  14. 渭南师范计算机学院男女比例,全国高校男女比例大揭秘!去这些大学怕是要单身四年了...
  15. OpenCV小项目:图像融合(泊松融合—Possion Blending)
  16. java程序員周報_分享我们团队管理的最佳实践——程序员的周报应如何填写
  17. IDEA搭建泛微OA Ecology 9.0 开发环境 (Windows版)
  18. 南大通用GBase8s 常用SQL语句(282)
  19. 重构os.nb.payload教程(扩建/缩小XIP区域、缩小/删除UDLR、前移IMGFS等)
  20. 微信数据库最新的解密方式,C++代码解密微信数据库信息

热门文章

  1. 内蒙古科技大学计算机专业校企合作好不好,校企合作真的靠谱吗 有什么坏处...
  2. 机器学习与统计建模 —— 归一化和标准化
  3. 第十一届蓝桥杯 ——互质
  4. js网页动画,如何做一款高逼格不失真的动画
  5. 服务器插无线usb网卡驱动,cubieboard安装USB无线网卡驱动及设置
  6. caffe常用层:Reduction层
  7. 推荐6款小众实用的Mac软件,让人耳目一新!
  8. vue是怎么实现数据响应式的?
  9. 2018-2019-2 《网络对抗技术》Exp7 网络欺诈防范 Week10 20165233
  10. 使用antd-pro组件 实现图片上传和图片编辑