• 架构设计(高可用)



    架构设计(高可用)

                    

                         

                                   

    cap 原理

            

    cap原理:分布式系统的三个特性(一致性、可用性、分区容错性)不能同时满足

                        

    1. 一致性(consistency):分布式系统中数据在多个节点冗余存储,从任意节点读取数据,总能读取最新的数据
    2. 可用性(avaliable):分布式系统在任何时刻都能正常响应
    3. 分区容错性(partition):发生网络分区(如网络故障、丢包等)时,系统仍可以正常工作

                 

    分布式系统中,网络分区不可避免,分区容错性需要满足,要在一致性、可用性之间做出选择

    1. ca:同时满足一致性、可用性,单节点部署时不存在网络分区,如关系型数据库
    2. cp:同时满足一致性、分区容错性,故障期间不可用,如redis集群、mongoDB集群
    3. ap:满足可用性、分区容错性,从不同节点可能会读到不一致的数据,如dynamoDB集群

                  

    base理论:牺牲部分一致性,保证系统可用,但最终会保持一致

    1. 基本可用:系统出现故障时,允许牺牲部分可用性(如响应时间延长、服务降级等)
    2. 软状态:在可容忍的一段时间内,允许系统的不同节点数据不一致,系统正常对外服务
    3. 最终一致性:经过一段时间数据同步完成后,不同节点之间的数据保持一致

                   

                     

                                   

    可用性标准

         

    可用性计算公式

    1. # 故障时间计算
    2. 可用性 = 平均正常工作时间/(平均正常工作时间时间+平均故障时间)
    3. # 请求数计算:故障时间难于统计,一般用请求数计算可用性
    4. 可用性 = 正常请求数/(增长请求数+异常请求数)

                 

    可用性分级:关键业务、核心业务的可用性一般要达到极高可用性(99.999%及以上)

                        

                

                      

                                   

    高可用实现

       

    冗余部署

    1. # 服务冗余
    2. 服务器数量按照满足最小性能要求数量的1.5倍部署,
    3. 如果按照最小数量部署,剩余的服务器可能会超负荷运行,容易故障
    4. 冗余部署后,可将流量切换到备份的服务器,不使服务器超负荷运行
    5. # 数据冗余备份
    6. 数据库如mysql使用双主部署,避免出现单点故障,导致服务不可用

             

    限流降级

    1. # 服务降级
    2. 远程服务调用出现故障,需要进行服务降级,避免一个服务故障导致其他服务不可用
    3. # 服务限流
    4. 需要对服务的最大流量限制,避免超负荷运行
    5. # 线程隔离
    6. 与主业务无关的逻辑(如日志等)单独处理,避免出错后对主业务造成影响

                  

                         

  • 相关阅读:
    《Python魔法大冒险》007 被困的精灵:数据类型的解救
    .NET 7 中的新增功能
    微信小程序:引导用户关注微信公众号-用户关注/取消关注事件,特别详细,已成功
    测试15k薪资第1步 —— 自动化测试理论基础
    计算机视觉与深度学习-全连接神经网络-训练过程-权值初始化- [北邮鲁鹏]
    Qt对Opengl的支持情况
    Linux 多线程编程详解
    static成员,代码块,内部类
    设计模式之适配器模式
    LeetCode第14题:最长公共前缀
  • 原文地址:https://blog.csdn.net/weixin_43931625/article/details/128190765