阅读《大型网站技术架构》,并结合"重大需求征集系统"有感
今天阅读了《大型网站技术架构:核心原理与案例分析》的第五、六、七章。这三张主要是讲述了一个系统的可用性、伸缩性和可扩展性。而根据文中所讲述的,一个系统的可用性主要是体现在这个系统的系统服务不中断运行时间占实际运行时间的比例,系统的伸缩性则是指在不改变系统软硬件设计,仅仅通过新增服务器的情况下,就能提升系统的处理能力,而系统的可扩展性是指该系统适应变化的能力。那么下面我就结合具体的“重大需求征集系统”来谈谈我对这三个性质的了解。
系统的可用性,即是指系统进行连续的高强度的正常运行的时间占系统实际运行时间的比例。可想而知,如果一个系统根本没有办法保证一个较高的占比,这个系统给用户的体验一定是非常差的:不时的卡顿,经常地刷新甚至于时常报错。这样的系统根本没有办法满足用户的最基本的流畅需求,那么这个系统又有谁去使用呢?再想一想上学期自己做的“重大需求征集系统”,虽然能够完成基本的需求和要求,但是很明显我做的系统的可用性几乎为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 ...
随机推荐
- 关于 document.compatMode
今天查资料时无意发现一个以前没有注意到过的属性:document.compatMode 经过一番资料的查询后,了解到以下信息: 我们都知道IE有两种盒子模型,在不声明 !DOCTYPE 时是混杂模式 ...
- 通过 Powershell 来替换 ARM 模式下虚拟机的网络接口
需求描述 客户在部署完 ARM 模式的虚拟机以后,由于误操作在虚拟机内部禁用了网卡导致远程访问虚拟机受到限制,以下是通过 Powershell 命令来替换原有虚拟网络接口实现虚拟网卡重置功能. Not ...
- Selenium2学习(十八)-- js处理内嵌div滚动条
前言 前面有篇专门用js解决了浏览器滚动条的问题,生活总是多姿多彩,有的滚动条就在页面上,这时候又得仰仗js大哥来解决啦. 一.内嵌滚动条 1.下面这张图就是内嵌div带有滚动条的样子,记住它的长相. ...
- 使用文档碎片(DocumentFragments)追加DOM元素
标签(空格分隔): JavaScript DocumentFragment接口表示一个没有父级文件的最小文档对象.它被当做一个轻量版的Document使用,用于存储已排好版的或尚未打理好格式XML片段 ...
- vue+node+mongodb实现的功能
用vue+node +mongodb实现前后台交互的页面代码,已经上传到github上, 地址是: https://github.com/GainLoss/vue-node-mongodb https ...
- python接口测试-项目实践(五) 实际结果与预期结果对比之 接口对比
五 与开发接口对比 1 分别将三个接口封装成三个函数,传入接口参数,返回提取并处理后的各字段. 拼接字符串作为单独的函数. def api_1(code): 发送请求获取响应 提取响应数据 响应数据转 ...
- ubuntu 可以加速播放的播放器SMPlayer 16.4安装
直接贴命令 sudo apt-add-repository ppa:rvm/smplayer sudo apt-get update sudo apt-get install smplayer smp ...
- 【转载】#470 Define Your Own Custom Attribute
You can use predefined attributes to attach metadata to type members. You can also define a custom a ...
- 纠结的一天 —— 由base64编解码与加号、空格引起
2014年3月14日,星期五, 23点22分 忙碌.焦头烂额.充实而又幸福的一天! 写在篇头的话: 许多时候,别人分享的经验(成功或失败),个中滋味,听者很难真正体会,直到自己遇到的那一瞬间,才会泪如 ...
- IOS 录音(AVAudioRecorder)
#import "HMViewController.h" #import <AVFoundation/AVFoundation.h> @interface HMView ...