系统可用性「建议收藏」

系统可用性「建议收藏」一个网站、系统的战术包括可用性战术、可修改性战术、性能战术、安全性战术、可测试性战术、易用性战术。质量需求指定了软件的响应,以实现业务目标,战术是影响质量属性响应的设计决策,构架策略是战术的集合,构架

大家好,又见面了,我是你们的朋友全栈君。

       一个网站、系统的战术包括可用性战术、可修改性战术、性能战术、安全性战术、可测试性战术、易用性战术。质量需求指定了软件的响应,以实现业务目标,战术是影响质量属性响应的设计决策,构架策略是战术的集合,构架模式是以某种方式将战术打包在一起。可用性是在某个考察时间,系统能够正常运行的概率或时间占有率期望值。它是衡量设备在投入使用后实际使用的效能,是设备或系统的可靠性、可维护性和维护支持性的综合特性。采用可用性战术将会阻止错误发展为故障,或者至少能够把错误的影响限制在一定范围内,从而使系统恢复成为可能。对于一个软件和系统,出现故障、不可用的现象是非常重大的事故,那么如何衡量系统的可用性和提高系统系统的可用性呢?

      例如一个网站,总会出现一些故障的时间,除去这些故障的时间,就是这个网站真正的可用时间,用真正的可用时间除网站的一共使用时间,那么就是这个网站的可用性,比例越高那么可用性就越高。可用性的刺激源一般是发生在系统的内部或外部,刺激是错误,疏忽,崩溃,时间,相应等,出现这些刺激的时候,系统处理器、通信通道、持久性存储器、进程等会出现错误,而系统的可用性表现在系统可用检测到事件,并且记录故障、通知用户和系统,根据之前定义好的规则来禁止故障。响应的度量为系统在出现故障时恢复的时间以及系统可以在降级模式下运行的时间间隔。以淘宝网为例:淘宝网的刺激源主要是用户,刺激为当很多用户在正常操作的情况下,在一个时间(比如双十一)进行操作而造成访问员过大时,造成系统崩溃,当系统出现问题时,系统会检测到状况,记录下来并且通知用户,并且可以保证在一定时间内排除故障、刷新页面,保证用户的使用。

       系统出现故障的原因是,系统的很可能出现服务器硬件故障,大型的网站会用到很多的服务器硬件,这些硬件并不能保证一直正常运行,一定会出现故障,所以高可用性的架构就是有多个服务器备份,当一个正在用的主服务器出现问题时,其他备份的服务器可以马上代替这个故障的主服务器,保证系统在一定时间内恢复刷新,保持可用。提高系统的可用性首先要系统可用检测到故障,最常见的故障检测方式有心跳检测、自动容灾等,就像人的心跳一样,心跳会保持向大脑传输信息,告诉大脑人体是否正常,是否出现问题,大脑会根据心跳提供的信息来做出一定的反应。在检测时最常出现的故障是数据库交互不成功而产生的异常,高可用的数据,同于高可用的应用和服务,一旦服务器备份,如果数据访问请求不能任意切换到集群中的其他服务器上,会大大的影响系统的可用性,这时不能单纯的使用失效转移机制,而是将数据备份和失效转移机制结合起来。

       提高系统的可用性有三方面:错误检测用来检测故障的某种类型的健康监视;自动恢复用来检测到故障时某种类型的恢复;错误预防用来阻止错误演变为故障。错误检测包括三个战术,第一个是信号或者响应,采用组件主动询问方式,就好像我们在上课时,老师点名回答问题,我们对老师对出响应,老师会判断我们的学习情况。在一个系统或网站中即一个组件发出一个信号,并希望在预定义的时间内收到一个来自审查组件的响应,该战术可以用在共同负责某项任务的一组组件内。第二个就是上文中提到的心跳,这种方式监视组件采用被动方式,就好像我们给老师汇报阶段学习,在系统或网站中即一个组件定期发出一个心跳信息,另一个组件收听该信息。心跳还可用于传递数据。第三个是异常:异常处理程序通常将错误在语义上转换为可以被处理的形式,异常通常与引入异常的程序在同一个进程中。错误恢复就是回滚,回到之前的状态,分为六种战术,第一种是表决,运行在冗余处理器上的每个进程都具有相等的输入,它们计算的值都发给表决者,表决者发现异常则终止进程,该方法用于纠正算法的错误操作或处理器的故障,通常用在控制系统中。第二种是主动冗余:所有的备份的组件都以并行的方式对事件做出响应,它们的状态都相同,但每次只使用一个组件的响应而丢弃其余组件的响应;主动冗余通常用在客户机或服务器的配置中,在这种配置中,即使发生错误,也可在极短的时间,通常为几毫秒内恢复,比如门户网站采取的策略。第三种是被动冗余:主组件对事件做出响应,并通知其它备用组件必须进行的状态更新。第四种是备件:备件是计算平台配置用于更换各种不同的故障组件。出现故障时,必须将其重新启动为适当的软件配置,并对其状态进行初始化。第五种是Shadow操作:出现故障的组件可以以“Shadow模式”运行,这样可以在系统恢复前模仿工作组件的行为。第六种是状态再同步:主动和被动冗余战术要求所恢复的组件在重新提供服务前更新其状态。错误预防就是设置进程监听器,当一个事物出现错误时,从进程中删除事物。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154401.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • phpstorm激活码2021到4月_通用破解码

    phpstorm激活码2021到4月_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    52
  • 20考研 | 2020考研全程规划,19上岸复旦学长。各科各阶段复习规划。

    20考研 | 2020考研全程规划,19上岸复旦学长。各科各阶段复习规划。下面我在分享一下我之前写过的一篇文章高能干货预警文章目前30142字,这可能是最负责的一篇文章了。文章很长,建议拿好笔记慢慢看。本文会解决你在考研各科在不同时期不同阶段遇到的所有问题,方法具体到草稿纸怎么使用,课本具体怎么使用,相信我,读完你一定会有巨大收获。我总结了我一年以来遇到的所有问题,使用的所有方法。既然最终目的是在考研这场「考试」中获得高分,那么所有的时间和精力,都应该围绕…

    2022年9月24日
    2
  • 事件节流函数封装层

    事件节流函数封装层

    2021年9月14日
    52
  • java 加载.ftl_如果加载jar里面的ftl文件

    java 加载.ftl_如果加载jar里面的ftl文件我将ftl及一些基础类打成了一个java,用maven的方式依赖,结果调用的时候调用不了jar中的ftl文件,找的还是调用方的地址去找ftl文件2019-07-0512:10:00,086[FailProcessor][WARN]Error@/manage/login:java.lang.RuntimeException:freemarker.template.TemplateNotF…

    2022年6月18日
    65
  • vue子组件给父组件传值

    vue子组件给父组件传值子组件:<template>  <divclass="app">    <input@click="sendMsg"type="button"value="给父组件传递值">  </div></template><script&gt

    2022年6月6日
    30
  • plsql developer怎么使用 plsql developer使用教程[通俗易懂]

    plsql developer怎么使用 plsql developer使用教程[通俗易懂]plsqldeveloper相信是编程朋友经常接触的一款Oracle数据开发工具。plsqldeveloper的功能也是相当强大的,下面小编就为大家简单介绍一下plsqldeveloper怎么使用。1、登陆成功后即可进入对象浏览器窗口界面2、在对象浏览器选择“myobject”,这里边就是SCOTT(当前登陆的用户的所有object)3、找到ta

    2022年6月3日
    94

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号