zoukankan      html  css  js  c++  java
  • xx系统属性分析

      在本周的课程学习当中,我们简单了解到系统的一些属性,同时在课下也对《大型网站技术架构:核心原理与案例分析》进行了初步的阅读。

    在书籍中我看到了许多其他的知识,也对课堂学习的知识有了巩固,现在针对xx系统,做一个简单的系统属性分析。

      在对系统进行简单的分析之前,我们先回顾一下系统的一些属性。

          首先是可用性,可用性与系统故障以及其后果有关,当系统不再提供其规范中所说的服务时,就出现了系统故障。而可用性是指系统正常运行

    时间的比例,他的比值为:平均正常工作时间/(平均正常工作时间+平均修复时间)。

      可用性指标是网站架构设计的重要指标,网站可用性看得见,摸得着,跟技术、运营、相关各方的绩效考核息息相关。一个典型的网站设计遵

    循基本分层架构模型即应用层、服务层、数据层。应用层主要负责具体业务逻辑处理;服务层负责提供可复用的服务;数据层负责数据的存储和访

    问。网站的可用性架构设计不但考虑实际的硬件故障引起的宕机,还要考虑网站升级发布引起的宕机。高可用的服务策略包括分级管理、超时设置

    和服务降级(关闭非核心服务)等。高可用的数据是最宝贵的资产,保证数据存储高可用的手段主要是数据备份和失效转换机制。数据备份可以实

    现数据完全的持久化,失效转换机制是为了保证系统可用。保证网站高可用,万无一失,是一个艰难的过程,还需要更多努力。

          然后是易用性,易用性关注的是用户完成某个期望任务的难易程度。它包括了:有效性、错误避免以及错误处理、用户自信和满意程度等。其

    实就是说用户使用某项功能是否觉得简单易用。

          那么对于我们现在正在编的这个系统,如何提高他的可用性与易用性呢,《大型网站技术架构》给了我们合理的解决方案。网站的可用性,网

    站的可用性一般通过可用性指标来度量,包括2个9, 3个9, 4个9等学习度量指标。它用网站每年最长的故障时间来进行度量。事实上网站的故障

    是不可避免的,我们要做的就是尽量降低故障发生的概率。首先我们要学会的就是对系统的分层,通常将系统分为3层,即业务层、服务层和数据层。

    这样的分层有利于在故障发生时,准确定位故障,并及时解决故障。而当网站的规模比较大,有较多的用户同时访问时,我们可以交给集群服务器,

    然后进行负载均衡,将流量和数据分摊到集群的多台服务器上,提高整体的处理能力,提高可用性。Session管理,在集群环境中,Session管理主

    要有Session复制、Session绑定、用Cookie文件记录Session等方法,提供分布式的缓存。除此之外,还有以下几个方法提高可用性。分级管理,

    将服务器进行分级管理,核心应用和服务优先用更好的硬件,这样会提高运行的速度;超时设置,由于服务器宕机、线程死锁等原因,使用户长时间

    得不到响应,同时还占用应用程序的资源,所以我们要设置服务器超时时间,一旦超时就抛出异常;异步调用,就是将一个服务分成多步,这样就不

    会因为一个服务失败导致整个应用的请求失败;服务降级,就是说在网站访问的高峰期,拒绝访问低优先级的服务,节约资源,使服务器避免全部死

    机。接下来是一些数据的提高可用性的方法,保证数据高可用手段主要是数据备份和实效转移机制。其中要重点说一下的是代码管理,这里提到Github,

    并且预测将成为版本管理的主要软件,我觉得有必要系统的学习一下。

          对于网站的易用性,就是然后觉得简单易用的一些处理机制,首先我们可以提高网页的打开速度,再好的网站打开速度慢,也就失去了用户,我

    们可以尽量少使用图片,合理设计数据库结构;让网站更加易于操作,如设计一些合理的快捷键,尽量不用动鼠标就不动鼠标;站在用户的角度考虑

    问题,多从用户的视角体验网站、多与用户交流、多挖掘用户的需求,让网站做到一切都是从用户的角度出发。

      每个系统都会有自己的特性,我们必须学会针对不同的系统做出不同的分析,但同时我们也应该总结出自己的一套方法,才能更好的对系统进行分析。

    同时也可以更好的积累经验。

  • 相关阅读:
    Linkerd 2.10(Step by Step)—将 GitOps 与 Linkerd 和 Argo CD 结合使用
    Linkerd 2.10(Step by Step)—多集群通信
    Linkerd 2.10(Step by Step)—使用 Kustomize 自定义 Linkerd 的配置
    Linkerd 2.10(Step by Step)—控制平面调试端点
    Linkerd 2.10(Step by Step)—配置超时
    Linkerd 2.10(Step by Step)—配置重试
    Linkerd 2.10(Step by Step)—配置代理并发
    本地正常运行,线上环境诡异异常原因集合
    Need to invoke method 'xxx' declared on target class 'yyy', but not found in any interface(s) of the exposed proxy type
    alpine 安装常用命令
  • 原文地址:https://www.cnblogs.com/crazy-soul/p/6565705.html
Copyright © 2011-2022 走看看