系统架构高可用系统设计原则01

1、也谈谈高可用
“高可用性”(High Availability)简称HA,一般来描述一个系统通过专门的设计,从而减小停工时间,而保持其服务的高度可用性。通俗来说就是经过专业的设计保障系统相关服务可以不间断的稳定运行。
度量方式:
%availability=(Total Elapsed Time-Sum of Inoperative Times)/ Total Elapsed Time数据库

可用性和系统组件的失败率相关。衡量系统设备失败率的一个指标是“失败间隔平均时间”MTBF(mean time between failures)。一般这个指标衡量系统的组件,如磁盘:
        MTBF=Total Operating Time / Total No. of Failures

2、高可用设计方案目标定义:服务器

  1. 保持业务高稳定性

系统稳定性是高可用的根本目的,通俗的说,系统能持续可用,不会无端宕机,在高压下仍然能正常工做。session

  1. 支持故障的快速定位(创建分层监控)

从实际工程的角度看,不出故障的服务是不存在的,因此出了故障要可以快速发现和定位,在外部用户发现前,经过报警机制,能准肯定位故障缘由,帮助工程师尽快处理问题,防止进一步影响业务。 架构

  1. 支持业务的快速恢复

业务能够经过以上三个方面创建负载均衡

3、架构设计的原则:
(1)无状态设计
系统架构高可用系统设计原则01
① 无状态服务(stateless service)对单次请求的处理,不依赖其余请求,也就是说,处理一次请求所需的所有信息,要么都包含在这个请求里,要么能够从外部获取到(好比说数据库),服务器自己不存储任何信息。若是还有其余信息须要存储,能够将信息放在一个单独可共享的地方,独立于server存在,好比,一样仍是采起session的方式,在服务端保存数据,减小每次client请求传输的数据量(节省流量);可是将session集中存放,好比放在单独的session层里。
这种状况下,server一样是无状态的,能够作水平扩展。若是server是无状态的,那么对于客户端来讲,就能够将请求发送到任意一台server上,而后就能够经过负载均衡等手段,实现水平扩展。
② 若是server是有状态的,那么就没法很容易地实现了,由于客户端须要始终把请求发到同一台server才行,所谓“session迁移”等方案,也就是为了解决这个问题。
③将有状态服务转换成无状态服务,无状态服务是相对隔离和平等的,当某台服务器出错,经过负载均衡策略会将流量划走到其余无状态服务器上。
一样仍是采起session的方式,在服务端保存数据,减小每次client请求传输的数据量(节省流量);可是将session集中存放,好比放在单独的session层里。这种状况下,server一样是无状态的,能够作水平扩展,以下图:
系统架构高可用系统设计原则01less

(2)冗余设计
无状态服务故障转移过程当中,须要服务作成冗余设计才能实现。ide

几个概念:
    ①SOA(Service-Oriented Architecture),SOA解决多服务凌乱问题,SOA架构解决数据服务的复杂程度,同时SOA又有一个名字,叫作服务治理。
    ②微服务架构:其实和 SOA 架构相似,微服务是在 SOA 上作的升华,微服务架构强调的一个重点是“业务须要完全的组件化和服务化”,原有的单个业务系统会拆分为多个能够独立开发、设计、运行的小应用。这些小应用之间经过服务完成交互和集成。
    ③SLA:服务等级协议(简称:SLA,全称:service level agreement)。是在必定开销下为保障服务的性能和可用性,服务提供商与用户间定义的一种双方承认的协定。
相关文章
相关标签/搜索