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

  

一、也谈谈高可用
“高可用性”(高可用性)简称哈,通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。通俗来讲就是通过专业的设计保障系统相关服务能够不间断的稳定运行。
度量方式:
%可用性=(总占用Time-Sum不起作用时间)/总运行时间

  
 <代码>可用性和系统组件的失败率相关。衡量系统设备失败率的一个指标是“失败间隔平均时间“MTBF(平均故障间隔时间)。通常这个指标衡量系统的组件,如磁盘:
  平均无故障时间=总操作时间/总没有。以前失败的 
  

二、高可用设计方案目标定义:

  
      <李>保持业务高稳定性李   
  

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

     <李>支持故障的快速定位(建立分层监控)      

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

     <李>支持业务的快速恢复李      

业务可以通过以上三个方面建立

  

三、架构设计的原则:
(1)无状态设计
系统架构高可用系统设计原则01”> <br/>①无状态服务(无状态服务)对单次请求的处理,不依赖其他请求,也就是说,处理一次请求所需的全部信息,要么都包含在这个请求里,要么可以从外部获取到(比如说数据库),服务器本身不存储任何信息。如果还有其他信息需要存储,可以将信息放在一个单独可共享的地方,独立存于服务器在,比如,同样还是采取会话的方式,在服务端保存数据,减少每次客户请求传输的数据量(节省流量);但是将会话集中存放,比如放在单独的会话层里。<br/>这种情况下,服务器同样是无状态的,可以做水平扩展。如果服务器是无状态的,那么对于客户端来说,就可以将请求发送到任意一台服务器上,然后就可以通过负载均衡等手段,实现水平扩展。<br/>②如果服务器是有状态的,那么就无法很容易地实现了,因为客户端需要始终把请求发到同一台服务器才行,所谓“会话迁移”等方案,也就是为了解决这个问题。<br/>③将有状态服务转换成无状态服务,无状态服务是相对隔离和平等的,当某台服务器出错,通过负载均衡策略会将流量划走到其他无状态服务器上。<br/>同样还是采取会话的方式,在服务端保存数据,减少每次客户请求传输的数据量(节省流量);但是将会话集中存放,比如放在单独的会话层里。这种情况下,服务器同样是无状态的,可以做水平扩展,如下图:<br/> <img src=系统架构高可用系统设计原则01