分布式架构系统学习笔记(五)-系统高可用架构

本文介绍了分布式系统中实现高可用性的策略,包括系统可用性的计算、应用层、服务层和数据层的分层架构。重点讲解了应用层的无状态设计、服务层的故障恢复机制、读写超时与服务降级,以及数据层的CPA理论、备份策略和失效迁移。通过这些方法,确保系统的高并发、高吞吐和稳定运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 系统可用性 = (1 - 系统不可用时间/年度总时间)* 100 %

2. 系统基本分层架构模型: 应用层、服务层、数据层

    应用层:负责具体模块业务逻辑处理

    服务层:提供可复用的服务

    数据层:负责数据存储和读写

    为了系统可以支持高并发、高吞吐,会引入应用集群。为了便于外部流量访问系统服务,会在应用层之上添加和负载均衡器。负载均衡器负责应用服务器均衡选取、故障应用服务发现和剔除。

    应用层 和下游服务层访问类似,应用层通过通信框架(比如百度内部的UB + BNS 和 Rpc框架),实现负责均衡器,做到对下游访问的负载均衡和下游不可用服务发现和剔除。

3. 高可用的应用层

    应用层主要处理系统业务逻辑,有时也叫业务逻辑层。一般特点是无状态。

    无状态应用:应用运行不保存业务上下文信息,应用前一次请求和后一次请求是完全独立的请求,即使是同一个Query。分布式集群所有应用实例对等。

    a)故障实例自动发现和剔除;

    b)Session管理:通过浏览器Cookie记录Session、传给应用;创建独立Session服务集群,读写Session都要访问Session集群。

4. 高可用的服务层

    a)服务分级管理:核心服务使用更好的硬件和资源;

    b)应用设置读写超时:读写超时设置,一旦访问下游超时,通信框架抛出异常。有效避免长时间不能响应用户请求、同时还占用应用资源;

    c)异步调用:对于那些必须要确认服务调用成功才能确定下一步操作的应用不适合异步调用。

    d)服务降级:大量并发导致系统性能下降时候,为了保证核心应用和功能,需要对次要服务做降级;

    降级方式:拒绝部分流量、临时性关闭关闭不重要的子服务、子功能。

    e) 幂等性:服务重复调用不可避免,因此,需要在服务层保证重复调用和一次调用产生的结果一样。

5. 高可用的数据层

    a)高可用数据CPA理论:一个提供数据存储的服务,无法同时做到CPA三个点。

        C: 数据一致性

        A: 数据可用性

        P: 分区耐受性

    b)数据备份:冷热备份 + 异步同步备份

        冷备份:定期备份,备份设备中的数据与当前实时数据差异较大;

        热备份:几乎实时同步,分为同步热备份和异步热备份两种;

        异步热备份:数据存储服务分主从,应用程序只连接和写入主存储服务。数据写入时,主存储服务的代理模块将数据写入主存储服务后,立刻返回写入成功。再异步方式向从存储服务发起写入指令。

        同步热备份:数据存储服务无主从(多个存储服务完全对等),应用程序同时连接多个存储服务,同时写入多个存储服务。

    c)失效迁移:如果数据存储服务器中有一台挂了,应用程序针对这台存储服务器的操作都需要重新路由到其他服务器,保证数据访问不会失败,这个过程就叫失败迁移。

        失败迁移 = 失败发现 + 访问迁移 + 数据恢复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值