【软考系统架构设计师】第八章 Web架构(知识点必知必会)
第八章 Web架构(知识点必知必会)
一. 负载均衡与集群技术
1)什么是负载均衡技术
- 多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。
- 将外部发过来请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立的回应客户端的请求。
- 负载均衡通常由服务器端安装的附加软件来实现
- 负载均衡会增加系统的吞吐量
- 负载均衡可在不同地理位置、不同网络结构的服务器群之间进行
- 负载均衡可使用户只通过一个IP地址或域名就能访问相应的服务器
2)什么是集群技术
- 多台服务器同时执行某一个任务,这些服务器就构成了一个集群。
- 使用集群技术可以最少的投资获得接近于大型主机的性能。
3)负载均衡技术的分类
01. 应用层的负载均衡
- 基于特定服务器软件的负载均衡(Http重定向)
- 反向代理负载均衡
02. 传输层的负载均衡
- 基于NAT(网络地址转换)的负载均衡
- 基于DNS(域名服务器)的负载均衡
4)负载均衡技术的另一维度分类
- 可以分为软件负载均衡和硬件负载均衡。
- 硬件和软件负载均衡他们其实背后的逻辑是一样的。
- LVS,Nginx,HAPRoxy属于软件负载均衡;
- F5则属于硬件负载均衡的范畴。
5)负载均衡的算法
- 一类是静态负载均衡算法另一类是动态负载均衡算法。
- 动态和静态算法最大的区别就是在于是否考虑到当前服务器的负载情况,看策略是不是事先定死的。
6)Http重定向负载均衡
- 特点:实现简单但性能较差,就是应用层请求转发。
- 缺点:容易在浏览器上形成一个死循环。
- 原理:当Web服务器认为自己负载较大的时候,它就不在直接发送回浏览器请求的网页,而是送回一个Location指令,让浏览器在服务器集群中的其他服务器上获得所需要的网页。
7)反向代理服务器的负载均衡
- 特点:部署简单,但代理服务器可能成为系统的瓶颈。
- 优点:安全性高(外部客户不能直接访问真实服务器),可以采用较好的负载均衡策略,
- 举例:Apache,Nginx可以充当反向代理服务器
- 原理:让代理服务器均匀的将请求分配转发给内部的Web服务器,从而达到负载均衡的目的。标准代理方式是指客户使用代理访问多个外部的Web服务器,而这里的负载均衡原理是让多个客户通过代理服务器访问内部的Web服务器,所以就叫做反向代理服务器。
- 反向代理的负载均衡使用动态算法,不仅考虑了实时的负载情况和各个服务器的差异,还可以对内部服务器的静态资源进行缓存。通过了反向代理服务器,所以安全性也比DNS更高。基于DNS的负载均衡只在简单性上面有优势。
8)DNS域名解析负载均衡
- 优点:效率高于Http重定向,减少了维护服务器的成本,简单易行,可以服务器可以位于互联网任何位置
- 缺点:一个应用服务器故障,不能及时通知DNS服务器,而且DNS的控制权在域名服务商,网站无法做更多的改善和更强大的管理。DNS服务器也无法知道各个服务器之间的性能差异。
- 原理:通过DNS服务中的随机名字解析来实现负载均衡。在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机,将在解析这个名字的时候得到其中一个地址。
9)基于NAT的负载均衡
- 原理:在内部地址和外部地址之间进行转换,以便具备内部地址的计算机能够访问外部网络。而当外部网络中的计算机访问地址转换网关拥有的某一外部地址时,地址转换网关能将其转换发到一个映射到内部地址上。这里的地址转换可以通过软件也可以通过硬件来实现。
10)响应式Web设计
- 是指我们设计与开发的页面可以根据用户的行为和不同的设备环境作出相应的响应来调整页面的布局,以提供用户可感知的流畅的阅读和操作体验。
二. Web架构
1)二层C/S架构
01. 概念
- 它基于资源不对等,且为了共享而提出来的
- 服务器是后台,负责数据管理,客户机前台完成与用户的交互任务。
02.优点
- C/S软件架构具有强大的数据操作和事务处理的能力。
- 模型思想简单,易于人们理解和接受。
- 但随着企业规模日益壮大,软件的复杂程度不断提高,传统的两层CS架构的局限性就体现了出来。
03. 缺点
- 单一的服务器,且以局域网为中心,难以实现扩展。
- 服务器负荷太重,难以管理大量的客户机,系统性能容易变坏;
2)三层C/S架构
- 三层CS架构将应用功能分成表示层,功能层和数据层。
- 表示层:应用的用户接口部分,它担负用户与应用之间的对话功能。
- 功能层:相当于应用的本体,它将具体的业务处理逻辑编入程序中,而处理所需的数据从表示层和数据层取得。
- 表示层和功能层之间的数据交往要尽可能简洁。
- 数据层:就是数据库管理系统,负责管理对数据库数据的读写。
- 数据库管理系统必须能迅速执行大量数据的更新和检索。
- 从功能层传输到数据层一般都是SQL语言。
3)B/S架构
01. 概念
- 也叫浏览器服务器风格。
- 其具体结构为浏览器/Web服务器/数据库服务器组成。
- 应用程序以网页的形式存放在Web服务器之上,用户运行某个应用程序时,只需在客户端上的浏览器中键入网址,调用Web服务器上的应用程序,并对数据库进行操作完成相应的数据处理工作,最后将结果通过浏览器显示给用户。
02. 优点
- 系统的软件,系统安装与维护,全在服务器端解决。达到了零客户端的效果。
- 很容易在运行时自动