zoukankan      html  css  js  c++  java
  • [软件体系架构]系统可用性

    系统的可用性

    即系统服务不中断运行时间占实际运行时间的比例。所以,可用性其实是一个百分比,如99.9%。

    根据ISO 9241-11的定义,可用性是指在特定环境下,产品为特定用户用于特定目的时所具有的有效性、效率和主观满意度

    我们通常会听说一个词:高可用,其实指的就是高可用性。高可用指的就是系统服务不中断运行时间占实际运行时间的占比更大。

    系统可用性所关注的几个方面:

      如何检测系统故障

      系统故障发生的频度

      出现故障时会发生什么情况

      允许系统有多长时间非正常运

      什么时候可以安全地出现故障

      如何防止故障的发生以及故障时要求进行哪种通知

    一般系统可用性定义为:

      a = 平均正常工作时间 / (平均正常工作时间+平均修复时间)

    一、错误检测

    1.信号响应:一个组件发出一个信号,并且在预定义的时间内收到一个来自审查组件的响应,该战术可以用在共同负责某项任务的一组组件内。——主动询问方式

    2.心跳:一个组件定期发出一个心跳信息,另一个组件收听该信息,传递数据。

    3.异常:异常处理程序通常将错误语义上转换为可以被处理的形式。

    二、错误恢复

    错误恢复由准备恢复和修复系统两部分组成。

    1.表决:运行在冗余处理器上的每个进程都具有相同的输入,他们计算发给表决者的一个简单的输出值,如果表决者检测到单处理器的异常行为,那么就中止这一行为,表决算法可以是“多数原则”或“首选控件”。

    2.主动冗余(热重启):所用的冗余组件都以并行的方式对时间做出响应,因此他们处在相同的状态,仅使用一个组件的响应,丢弃其他组件的响应。错误发生时,使用该战术的系统停机时间通常是几毫秒,因为备份是最新的,所以恢复所需要的时间就是切换时间。

    3.被动冗余(暖重启/双冗余/三冗余):一个主要组件对事件做出响应,并通知其他备用组件强制更新状态,当错误发生时,在继续提供服务前,系统必须首先确保备用状态是最新的。

    4.备件:备用件是计算平台配置用于更换各种不同的故障组件。出现故障时,必须将其重新启动为适当的软件配置,并对其状态进行初始化。定期设置持久设备的系统状态的检查点,并记录持久设备的所有状态变化能够使备件设置为适当的状态。

    5.shadow操作:以前出现故障的组件可以在短时间内以“shadow模式”运行,以确保在恢复该组件前,模仿工作组件行为。

    6.状态再同步:主动和被动冗余战术要求恢复的组件在重新提供服务前更新其状态。更新的方法取决于可以承受的停机时间、更新的规模以及更新所要求的消息的数量。

    7.检查点/回滚:检查点就是记录所创建的一致状态,或者是定期进行,或者是对具体事件做出响应。有时系统会以一种不同寻常的方式出现故障,可检测到其状态不一致。在这种情况下,应该使用上一个一致状态检查点和拍了快照后所发生的事务日志来恢复系统。

    三、错误预防

    1.从服务中删除:该战术从操作中删除了系统的一个组件,以执行某些活动来防止预期发生的故障。一个示例就是重新启动组件,以防止内存泄漏导致故障的发生。

    2.事务:事务就是绑定几个有序的步骤,以能够立刻撤销整个绑定。

    3.进程监视器:监视进程中存在的错误,如果发现错误,则删除该执行进程,并为该进程创建一个新的实例。

    根据ISO 9241-11的定义,可用性是指在特定环境下,产品为特定用户用于特定目的时所具有的有效性、效率和主观满意度

  • 相关阅读:
    MVVM 中 ViewModelBase和 CommandBase
    Numpy的ndarry
    dockerfile命令
    Docker命令大全
    Docker介绍
    Docker安装
    pandas入门学习
    pandas入门学习--------------------------(一)
    python签名设计
    python--numpy学习(一)
  • 原文地址:https://www.cnblogs.com/zlc364624/p/12360648.html
Copyright © 2011-2022 走看看