网站架构技术的核心架构要素
本部分是本书的重点,涉及书中第3章到第8章6个章节的内容,占了全书内容的大半篇幅。其中第三章是后面五章的概述和总结,而第四到第八章则分别介绍了性能、可用性、伸缩性、扩展性和安全性这五大核心架构要素。
对于一个软件系统来说,其单一系统功能需求的实现虽然也不容易,这部分内容可以参照代码大全这本书;但其在系统中的位置及和其他模块的关系更需要注意,设计不好则会大大增加系统的复杂性。好在,在网站架构方面,有大量的模式可以借鉴,参照笔记1。在架构设计过程中,需要注意的另一大因素就是平衡好上述五大核心架构要素的关系以实现需求和架构目标;也可以通过考察这些架构要素来衡量一个软件架构设计的优劣,判断其是否满足期望。
下面将就五大核心架构要素一一展开说明,每个架构要素都有可能涉及到笔记1中所谈到的模式。这也是本书的一大特点,各个知识点之间耦合度比较高,难以解耦。
由于本篇内容过多,会在介绍下面五个核心要素前,分别给出这五个部分的超链接,提供独立访问,可选择有兴趣的部分进行阅读,超链接后面再附上所有五个核心要素的全文,共约1万字,个人建议分开阅读。
笔记2.1:核心架构要素之高性能
笔记2.2:核心架构要素之高可用
笔记2.3:核心架构要素之可伸缩
笔记2.4:核心架构要素之可扩展
笔记2.5:核心架构要素之安全
下面是全文:
一 网站的高性能架构
主要问题:在用户高并发访问时,会产生很多网站性能问题;所以,网站高性能架构或者说网站性能优化的主要工作是改善高并发访问情况下的网站响应速度。
网站性能:性能这个词涉及到的面是相当大的。它既有着自己的客观指标,也涉及用户的客观感受;而且,在不同视角下,各方的关注点也不一样。本部分的主要内容就是如何构建一个高性能的网站;通过分析不同层面下的网站优化措施,从而实现在性能测试的前提下进行针对性优化。
1.1 不同视角下的网站性能
在不同视角下,各方的关注点不一样;不同视角下的网站性能标准不同,优化手段也不同。
1 用户视角下的网站性能:
从用户角度,网站性能就是用户在浏览器上直观感受到的网站响应速度。这里的性能除了与请求的服务,服务端响应速度之外;还与客户端机器、浏览器和网络带宽等有关。
性能优化:这里的优化主要是优化用户感官。使用前端架构优化手段,使浏览器尽快地显示客户感兴趣的内容、尽可能近地获取页面内容,从而改善客户视角下的网站性能。
2 开发人员视角的网站性能
从开发人员角度,网站性能就是应用程序本身和其相关子系统的性能,包括响应延迟、系统吞吐量、并发处理能力、系统稳定性等技术指标。
性能优化:使用缓存加速数据读写;使用集群提高吞吐能力;使用异步消息加快请求响应以及削峰,使用代码优化改善程序性能。
3 运维人员视角的网站性能
从运维人员角度,网站性能就是基础设施性能的资源利用率。
性能优化:建设优化骨干网、使用高性价比定制服务器、利用虚拟化技术优化资源利用。
1.2 网站性能测试
性能测试是性能优化的前提和基础,也是性能优化结果的检查和度量标准。
1.2.1 性能测试指标
1. 响应时间
定义:指应用执行一个操作需要的时间,包括从发出请求开始到受到最后响应的时间。响应时间是系统最重要的性能该指标,直观地反映了系统的快慢。
2.并发数
定义:指系统能够同时处理请求的数目,反映了系统的负载特性。对于网站而言,并发数即网站并发用户数,即同时提交请求的用户数。
与人数有关的数据还有网站注册用户数和网站在线用户数,其中
网站注册用户数 >> 网站在线用户数 >> 网站并发用户数