title: 探究现代web架构
date: 2020-05-08 09:18:53
tags: web
1、单机架构
1、一个系统业务量很小的时候,所有代码都放在一个项目中,部署在一台服务器上

2、单机架构处理能力有限 》集群模式 》分布式 》 微服务

3、

1.1、虚拟主机
1、虚拟主机的原理:在服务器上给你划分一个目录给你的网站-

2、lls :虚拟主机

3、vps:云服务器,阿里云

4、虚拟技术

1、vpn:虚拟隧道

2、跳板:网络安全的范畴,特点难以追踪。

1.2 、正向代理
1、正向代理:类似于中介,所有的请求都会到达给中介,而不是直接传递给服务器。

2、基本原理:正向代理代理的是客户端,很多的客户端向同一个中介发送请求,中介向一台服务器发送请求。

1.3、反向代理
1、基本原理:反向代理代理的是服务器,一台客户端发送了一个请求,到代理服务器,代理服务器分配一个服务器给他。这个代理服务器会代理很多台服务器。(你不知道是那一台服务器与你的客户端相互交互)

2、优点:反向代理可以提高性能,因为反向代理后面有很多台服务器。

1.4、负载均衡
1、没有负载均衡:通常单机架构会把文本服务器与数据库放在同一个服务器中。

1、多个用户同时去访问我们的web服务器,超出我们服务器的处理能力时,响应速度慢,甚至会出现无法链接的情况

2、DDOS:拒绝服务式攻击。人为丶恶意制造,海量的数据在同一时间去访问我们的web服务器,人为让我们的服务器超过运算能力。

3、syns洪水攻击:针对tcp/ip的数据传输,让其半链接不断,并同时增加用户访问量。(拒接半链接的方式,硬件防火墙)

4、没有负载均衡:类似于学校选课的系统一样

2、1个 负载均衡器,至少2个web服务器

负载均衡器原理:会在用户与服务器之间建立一个负载均衡器,负载均衡器主要用于请求的分配,他会监控服务器的状态分配请求。

2、集群
1、原理:将一个web应用程序,部署到多台服务器上,服务器的前面会有负载均衡器,负载均衡器来选择呢一台服务器去处理我们的请求。30台服务器,挂掉一台还有29台可以进行操作,不会影响我们的整个系统的正常运行

2、描述:一大群人做同一件事,一个人死了不影响。不用相互通讯。

3、分布式
1、原理:分布式会把一个系统拆分成许多的模块,每一个模块对应一个服务器,服务器之间需要通讯。用户发送的请求会被负载均衡器来处理,然后根据请求访问不同的服务器类型,

2、描述:一大群人做自己不同的事情,他们会交流完成他们自己的事情。

3、通讯使用的技术:RPC C/S webservice

4、中间层
1、中间层:架构层面,中间件是一个函数。

2、mvc:后端提供接口,前端使用ajax调用接口,所有的渲染和数据都是由js在客户端生成的。

SSR(服务端渲染)

CSR(客户端渲染)

渲染生成:生成html也页面的过程,可能造成首页白屏,同时也不利于SEO,SEO中有一个spider,这个spider对于静态页面非常友好,但是对于j非常不友好。

3、我们使用中间层,后端只需要去关注接口,不需要去关注前端业务逻辑的实现。

4、前端一般使用node作为中间层。

5、微服务
1、原理:前端 + 中间层 完成前端所用的业务逻辑,后端只需要专注于接口的编写。

2、一般普通企业不会使用,里面的内容太过复杂

5.1 架构师于普通程序员的区别
架构师:架构师脱离了业务层的,其实就是一种抽象。

程序原:代码和业务层高度相关的