今天阅读了《大型网站技术架构:核心原理与案例分析》的第五、六、七章。这三张主要是讲述了一个系统的可用性、伸缩性和可扩展性。而根据文中所讲述的,一个系统的可用性主要是体现在这个系统的系统服务不中断运行时间占实际运行时间的比例,系统的伸缩性则是指在不改变系统软硬件设计,仅仅通过新增服务器的情况下,就能提升系统的处理能力,而系统的可扩展性是指该系统适应变化的能力。那么下面我就结合具体的“重大需求征集系统”来谈谈我对这三个性质的了解。
系统的可用性,即是指系统进行连续的高强度的正常运行的时间占系统实际运行时间的比例。可想而知,如果一个系统根本没有办法保证一个较高的占比,这个系统给用户的体验一定是非常差的:不时的卡顿,经常地刷新甚至于时常报错。这样的系统根本没有办法满足用户的最基本的流畅需求,那么这个系统又有谁去使用呢?再想一想上学期自己做的“重大需求征集系统”,虽然能够完成基本的需求和要求,但是很明显我做的系统的可用性几乎为0.因为我做的系统没有办法保证连续的高强度的运作,甚至有时候还会报出http 500之类的错误。这对于用户来说很明显体验是非常差的。同时界面的风格、用户操作的习惯也没有进行较多的考虑,导致用户体验差。因此还需要向这个方向不停地改善。
系统的伸缩性,是指通过新增服务器就能提升系统处理能力的性能。系统伸缩性设计可分为2类。一类是根据功能进行物理分离来实现伸缩,一类是按单一功能做集群实现伸缩。(当然很多时候是同时运用这2种方式)系统初期一般是根据功能进行分离,例如最开始整个系统就跑在一台服务器上,随着发展,将数据库分离处理单独运行在服务器上,接着将缓存分离出来单独运行,然后是静态资源分离出来。根据功能分离一般又分为2种情况,纵向分离(例如系统前端、后端、数据库分别部署扩展), 横向分离(例如,登录流程、搜索流程、购物车流程分别部署扩展)。很明显,我做的系统在这一项上的打分为0.因为我在做“重大需求征集系统”的时候根本就没有考虑到在服务器上进行运行,仅仅是通过在个人电脑上最基础的人机交互来完成操作的。因此我的系统根本就没有办法通过新增服务器的方式来对系统进行处理能力的提升。
系统的可扩展性,是指在系统的某些部分需要修改扩展时,系统对变化的适应的能力。设计良好的代码允许更多的功能在必要时可以被插入到适当的位置中。这样做的目的的是为了应对未来可能需要进行的修改,而造成代码被过度工程化地开发。简单地说,可扩展性就是关于如何处理更大规模的业务。比如,Web应用程序就是允许更多的人使用你的服务。如果你不能弄清楚如何提高性能的同时向外扩展,没关系。只要你能处理更大规模的用户,即使是存在多个单点故障也没有问题。组合的可扩展性要求要满足用户不断发展的要求,还要满足因技术发展需要而实现的扩展和升级的需求。而对于我的系统来说,系统的可扩展性是有的,但是可扩展的部分不多,因此对应的可扩展的能力不强,因此这也是"重大需求征集系统"需要改善的一个方面。
阅读《大型网站技术架构》,并结合"重大需求征集系统"有感的更多相关文章
-
《大型网站技术架构》1:概述 分类: C_OHTERS 2014-05-07 20:40 664人阅读 评论(0) 收藏
参考自<大型网站技术架构>第1~3章 1.大型网站架构演化发展历程 (1)初始阶段的网站架构:一台服务器分别作为应用.数据.文件服务器 (2)应用服务和数据服务分离:三台服务器分别承担上述 ...
-
Web高级征程:《大型网站技术架构》读书笔记系列
一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...
-
大型网站技术架构介绍--squid
一.大型网站技术架构介绍 1.pv高 ip高 并发量 2.大型网站架构重点 1. 高性能:响应时间,TPS,系统性能计数器.缓存,消息队列等. 高可用性High Availabilit ...
-
《大型网站技术架构:核心原理与案例分析》【PDF】下载
<大型网站技术架构:核心原理与案例分析>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230062557 内容简介 本书通过梳理大型网站 ...
-
大型网站技术架构(3):WEB 前端性能优化
上次说到了性能优化策略,根据网站的分层架构,可以大致的分为 web 前端性能优化,应用服务器性能优化,存储服务器性能优化三大类 这次来说一下 web 前端性能优化,一般来说,web 前端就是应用服务器 ...
-
大型网站技术架构(四)--核心架构要素 开启mac上印象笔记的代码块 大型网站技术架构(三)--架构模式 JDK8 stream toMap() java.lang.IllegalStateException: Duplicate key异常解决(key重复)
大型网站技术架构(四)--核心架构要素 作者:13GitHub:https://github.com/ZHENFENG13版权声明:本文为原创文章,未经允许不得转载.此篇已收录至<大型网站技 ...
-
阅读《大型网站技术架构:核心原理与案例分析》第五、六、七章,结合《XXX重大技术需求征集系统》,列举实例分析采用的可用性和可修改性战术,将上述内容撰写成一篇1500字左右的博客阐述你的观点。
这三章主要讲述的是网站的可用性.伸缩性和可扩展性. 首先,网站的可用性描述网站可有效访问的特性,相比于网站的其他非功能特性,网站的可用性更容易引起人们的注意,尤其是大型网站的可用性,如果大公司的网站出 ...
-
web技术发展历程--读《大型网站技术架构_核心原理与案例分析》
1 早期的web服务 2 CGI程序的出现.发展.凋零到MVC的兴起 CGI:通用网关接口技术. 随着CGI技术的出现,web服务端可以通过不同的用户请求产生动态页面内容. web服务器将请求数据交给 ...
-
【摘自大型网站技术架构书】负载均衡时session如何共享
由于负载均衡服务器可能会将请求分发到集群任何一台服务器上,所以保证每次请求能够获得正确的session比单机时复杂. 集群环境下,session管理的主要几种手段 1.session复制 sessio ...
随机推荐
-
运用Mono.Cecil 反射读取.NET程序集元数据
CLR自带的反射机智和API可以很轻松的读取.NET程序集信息,但是不能对程序集进行修改.CLR提供的是只读的API,但是开源项目Mono.Cecil不仅仅可以读取.NET程序集的元数据,还可以进行修 ...
-
iOS 系统根据导航栏和状态栏自动修改布局
问题 条件:1.有一个全屏大小的带导航的controller 2.隐藏导航栏,最顶上还会留出状态栏的位置,而不是全屏显示 解决方法 self.automaticallyAdjustsScrollVie ...
-
WSGI是一种编程接口,而uwsgi是一种传输协议
http://uwsgi-docs.readthedocs.io/en/latest/Nginx.html http://sunxiunan.com/?p=1778 cgi---------fastc ...
-
Gradle 1.12用户指南翻译——第四十九章. Build Dashboard 插件
本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
-
使用VS的生成事件命令行指令将生成的exe,dll文件复制到指定文件夹中
VS预生成事件命令行 和 生成后事件命令行 宏说明 $(ConfigurationName) 当前项目配置的名称(例如,“Debug|Any CPU”). $(OutDir) ...
- ps使用经验
-
自己写一个分页PageHelper
每次写分页导航的时候都要在html页面写一堆标签和样式,太麻烦了,所以干脆自己动手封装一个自己喜欢的类直接生成. 一.PageHelper类: /// <summary> /// 分页导航 ...
-
mybatis的resultMap与resultType的区别
一.概述MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部Res ...
-
Mysql ON子句和USING子句
Mysql ON子句和USING子句 Mysql 中联接SQL语句中,ON子句的语法格式为:table1.column_name = table2.column_name. 当模式设计对联接表的列 ...
-
php使用date()函数时,提示的警告
转载:http://www.shangxueba.com/jingyan/121682.html 在用PHP5.3以上的PHP版本时,只要是涉及时间的会报一个: "PHP Warning: ...