• 架构设计(高可用)



    架构设计(高可用)

                    

                         

                                   

    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. 与主业务无关的逻辑(如日志等)单独处理,避免出错后对主业务造成影响

                  

                         

  • 相关阅读:
    绿色生态模式秸秆综合利用 国稻种芯现代饲料规划循环模式
    zookeeper:启动原理
    存储技术知识分享
    打破平台限制,小程序如何在硬件设备上运行?
    枚举类中有2个值,如何根据值1取值2,根据值2取值1
    误删照片恢复软件推荐,轻松恢复照片好帮手!
    Pytorch API
    sql第二条数据的某列更新到 第一列的某个字段里
    leetcode栈与队列(上)之理论篇(java实现)
    Spring WebFlux入门实践
  • 原文地址:https://blog.csdn.net/weixin_43931625/article/details/128190765