• 阅读《大型网站技术架构:核心原理与案例分析》分析可用性和技术性


         在阅读了《大型网站技术架构:核心原理与案例分析》的五、六、七章后,我分析了如何在一个系统中增加相应的功能来提高系统的可用性和易用性。首先,我们应该明白何为可用性、易用性。

         可用性是网站的非功能特性,不过这个特性是个十分重要的部分,因为大型网站的不可用事故直接影响公司的形象和利益。可用性指的是在网站发生故障的时候,处理故障,解决问题的能力,例如QQ的可用性是四个9,即服务99.99%可用,在一年中最多53分钟不能用。对大多网站而言,两个9是基本可用,三个9是较高可用,四个9是自动具有恢复能力的高可用,五个9是极高可用。在我们的系统进行开发的时候,如果想提高可用性,一是可以通过购入昂贵的设备来支持系统,例如IBM的机器,oracle数据库,EMC储存设备等。而使用廉价的设备在运气不好的时候往往可用性会很差,损坏概率更高。但是即使是好的机器,依然有损坏的风险,所以就需要有一个好的架构。提高可用性的第二点是,实现高可用性架构。在服务器故障时可以把服务切换到其他服务器上,如果磁盘损坏,则从备份的磁盘中读取数据。

         一般的架构分为三层,应用层,服务层,数据层。

         服务层可以使用负载均衡服务,随机为用户分配服务器,在一个服务器宕机的时候,就把它从服务列表删除,然后随机使用其他服务器。在session管理上,一有session复制,让每台服务器上都有信息,使之不会轻易丢失,不过在用户较多的时候会有内存不够,这种就不适合。二有session绑定,把信息绑定在一台机器上,所有用户都来访问这个服务器,占用内存小,不过可用性差。三使用cookie记录,一般来说这个有很多局限,例如内存小,影响性能等,不过因为可用性强,简单易用,而且一般来说用户保存的信息都较小,所以许多网站都在用。四session服务器,这种是性能最高的不过需要开发专用的管理平台。提高可用性的服务策略还有分级管理,超时设置,异步调用,服务降级,幂等性设计等。

         在数据上可用性十分重要,因为数据是一个网站的命脉,一旦故障往往是致命的。数据可用性提升有几种方法:一是CAP原理,CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼 。在可用性提升的同时往往会牺牲一致性。二是数据的备份,分为数据热备和冷备份。冷备份是将数据存储在内存中,不能及时的更新,不过简单价格低廉。数据热备分为同步与异步。三是失效转移,在一个服务器宕机的时候,将所有数据读入其他服务器中,分为三步,失效确认,访问转移,数据恢复。四是代码控制。

      易用性则是针对用户来说的,我们可以通过提高网站的运行速度,网站的在用户方面的人性化控制来增加易用性。

         

  • 相关阅读:
    【LeetCode每天一题】Combinations(组合)
    【算法】字符串匹配算法
    【LeetCode每天一题】Edit Distance(编辑距离)
    【LeetCode每天一题】Set Matrix Zeroes(设置0矩阵)
    SpringIOC和DI
    SpringMVC基础
    SpringMVC框架简介
    Spring配置JDBCTemplate
    java自定义注解
    KTV项目之3个ListView的跳转和加载歌手图片
  • 原文地址:https://www.cnblogs.com/xiaosongbiog/p/6567997.html
Copyright © 2020-2023  润新知