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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

xx系统属性分析的更多相关文章

  1. 修改Android系统属性SystemProperties.set("sys.powerctl", "shutdown")关机分析

    简介: 从之前的博文中我们提到过,关机流程中最后是通过修改Android属性进行关机操作(SystemProperties.java通过JNI调用访问系统属性),当然我们也可以通过adb命令修改And ...

  2. (转)Android 系统属性SystemProperty分析

    一 System Property 代码中大量存在:SystemProperties.set()/SystemProperties.get():通过这两个接口可以对系统的属性进行读取/设置, 顾名思义 ...

  3. Android 系统属性SystemProperty分析

     http://www.cnblogs.com/bastard/archive/2012/10/11/2720314.html Android System Property 一 System Pro ...

  4. 变化Android系统属性SystemProperties.set("sys.powerctl", "shutdown")关机分析

    基本介绍: 从以前的博客中提到,我们,最后,通过关机过程变化Android关机属性(SystemProperties.java由JNI呼叫接入系统属性),当然,我们也能adb命令变化Android系统 ...

  5. 针对XX系统的可用性方面的相关想法(结合书)

    在开始对此系统进行再次分析之前,再回顾下可用性.首先,可用性是与系统故障有关的一个质量属性,是指系统正常运行的时间的比例,一般通过两次故障之间的时间长度或在系统崩溃情况下能恢复正常运行的速度来衡量,同 ...

  6. 【用户交互】APP没有退出前台但改变系统属性如何实时更新UI?监听系统广播,让用户交互更舒心~

    前日,一小伙伴问我一个问题,说它解决了半天都没解决这个问题,截图如下: 大概楼主理解如下: 如果在应用中有一个判断wifi的开关和一个当前音量大小的seekbar以及一个获取当前电量多少的按钮,想知道 ...

  7. Android SystemProperties设置/取得系统属性的用法总结

    通过调查得知,Android系统中取得/设置系统属性的用法参考以下3篇文章就足够了. 1.Android SystemProperties简介 介绍了设置属性需要的权限,已经设置权限的方法. Syst ...

  8. Tomcat系统架构分析

    Tomcat系统架构分析 关于这边blog呢,实际开发中并不会用到,但是我觉得还是很有必要认真的写一下.毕竟我们每天在本地撸码的时候使用的就是tomcat来做web服务器.一个常识就是说我们本地在to ...

  9. Android基础-系统架构分析,环境搭建,下载Android Studio,AndroidDevTools,Git使用教程,Github入门,界面设计介绍

    系统架构分析 Android体系结构 安卓结构有四大层,五个部分,Android分四层为: 应用层(Applications),应用框架层(Application Framework),系统运行层(L ...

随机推荐

  1. phpstorm中open in browser端口和路径设置

    phpstorm默认的端口号是:63342但是我装的apache服务器的默认端口是80网上查找资料,都说可以加listen的端口,比如这里 #Listen 12.34.56.78:80Listen 8 ...

  2. C#移除URL上指定的参数

    /// <summary>        /// 移除URL上指定的参数,不区分参数大小写        /// </summary>        public static ...

  3. ajax 常用功能 结构分解

    ajax 和后台交互基本结构 0.触发的事件. 1.获取参数 2.url 3.请求方法get/post 4.对返回结果的处理 .done如果有返加 .fail 失败 $(function () { / ...

  4. Mybatis常用代码

    以下使用的数据库是Mysql. Mybatis动态Sql: Mapper.xml如下: <select id="selectOrderList" resultMap=&quo ...

  5. Floyd-Warshall算法计算有向图的传递闭包

    Floyd-Warshall算法是用来求解所有结点对最短路径的知名算法,其还有一个重要的用途就是求解有向图的传递闭包,下面就让我来介绍算法导论中关于有向图闭包计算的有关记载吧. 有向图的传递闭包:我们 ...

  6. flutter Dialog里ListView的问题

    showDialog( context: context, builder: (ctx) { return // Dialog( // child: Container( // padding: Ed ...

  7. Codeforces Round #553 (Div. 2) C题

    题目网址:http://codeforces.com/contest/1151/problem/C 题目大意:给定奇数集和偶数集,现构造一个数组,先取奇数集中一个元素1,再取偶数集二个元素2,4,再取 ...

  8. Git那些事儿

    Git是目前世界上最先进的分布式版本控制系统,适合多人协作开发的大型项目.我平常也经常使用git,来管理自己的几个小项目.简单说说git的原理和git的特点!(只有知道了一个工具的运行原理,设计思路, ...

  9. 编辑输出“Hello World”

    一.新建java项目 执行“文件->新建->项目建立”,打开建立新项目对话框,在编辑框中输入项目名,其他选项为默认值,随后点击“完成”按钮. 二.新建java类 执行“文件->新建- ...

  10. 九、mybatis模糊查询2种方式

    1. 2. 3.