zoukankan      html  css  js  c++  java
  • 大型网站核心架构要素 之三(万无一失,网站的高可用架构)

    实现因为各种硬件/软件故障灯,网站的服务依然能够被使用、数据依然保存并能够被访问的主要手段是数据和服务的荣誉备份及失效转移,一旦某些服务器宕机,就将服务切换到其他可用的服务器上,如果磁盘损坏,则从备份的磁盘读取数据。

    一、高可用网站架构,
    1.1、通过负载均衡进行无状态服务的失效转移
    1.2、通过应用服务器集群的Session 管理
    可以利用Hash算法,对session集群分配。利用分布式缓存、数据库等,在这些产品的基础上进行包装,使其符合Session的存储和访问要求。
     
    二、高可用的服务
    1.3.1、分级管理,运维上将服务器进行分级管理,核心应用和服务优先使用更好的条件,同时在服务部署上也进行必要的隔离,避免故障的连锁反应
    1.3.2、超时设置 避免资源无限期占用
    1.3.3 异步调用 应用服务的调用通过消息队列等异步方式完成
    1.3.4 服务降级,在网站访问高峰期,服务可能因为大量的并发调用而性能下降,严重时,可能会导致服务宕机。为了保证核心应用和功能的正常运行,需要对服务进行降级。拒绝服务或者关闭服务
    1.3.5 幂等性设计
    1.3.6 高可用的数据 数据冗余做好,数据没有了就真没有了、数据备份工作做好
    1.4 失效转移
    1.4.1 失效确认,通过心跳或者测试程序来判断
    1.4.2 访问转移,根据配置动态迁移
    1.4.3 数据恢复,因为某台服务器宕机,所以数据存储的副本数目会减少,必须将副本数目恢复到系统设定的值。
    三、高可用的数据
    1、数据持久性 主要通过 数据备份, 数据拆开分散到多台服务器上
    2、数据可访问性 主要备份,一台坏了 到另一台
    3、数据一致性 主要靠高可用的分布式数据处理系统  
        a、数据强一致:各个副本的数据在物理存储中总是一致的;数据更新操作结果和操作响应总是一致的,即使操作响应通知更新失败,那么数据一定没有被更新,二不是处于不确定状态
        b、数据用户一致 即数据在物理存储中的各个副本的数据可能是不一致的,但是终端用户访问时,通过纠错和校验机制,可以确定一个一致的且正确的数据返回给用户、
    4、数据备份 分为冷备份和热备份 
        a、冷备份一般使用硬盘存档,比如MYSQL 等,主要作为一种传统的数据保护手段,依然在网站日常运维中使用,但是如果从冷备份中恢复数据 需要较长时间。
        b、热备份可以分为两种, 异步热备份和同步热备份方式, 异步方式是指多份数据副本的写入操作异步完成,比如MYSQL
             同步方式是指多份数据副本的写入操作同步完成,即应用程序收到数据服务系统写成功响应时,多份数据都已经写操作成功
    5、失效转移
        主挂了 从上  其中需要进行失效确认,通常可以通过心跳检测进行确认 ,确认挂了以后 就迁移流量到其他正常的服务器上
    6、灰度发布  就是把服务器分批次发布,把风险降低到最低
    7、监控数据采集
        a、用户行为日志收集
        b、服务端日志收集
        c、客户端浏览器日志手机
        d、服务端性能监控,及时预警
        e、运行数据报告
    8、监控管理
        a、系统报警
        b、失效转移
        c、自动优雅降级 优雅降级是指网站为了应付突然爆发的访问高峰,主动关闭部分功能,释放部分系统资源
  • 相关阅读:
    open系统调用flow之do_last()
    interval tree
    kernel exception时打印出的ESR相关信息
    VFS四大struct:file、dentry、inode、super_block
    vma
    CPU cache
    process mngr misc
    java.io.IOException: Unable to unwrap data, invalid status [CLOSED]
    菜鸟学自动化测试(七)selenium RC 工作原理
    OCX开发与第三方OCX封装
  • 原文地址:https://www.cnblogs.com/wangmy/p/5673624.html
Copyright © 2011-2022 走看看