00:02
正向代理和反向代理两个基本概念介绍之后,下面给大家介绍另外两个概念,那么他们是什么呢?一个叫负载均衡,还有一个叫动静分离,那下面我们详细介绍一下,首先先看一下这个负载均衡,给大家详细做个说明。首先咱看一下文档中关于负载均衡的一段最基本描述,咱们先看第一段话。这里写到说客户端呢,发送多个请求到服务器,服务器处理请求有些可能要与数据库进行交互,而服务器处理完毕之后,再将结果返回给客户端。大家注意啊,当我们读完这段话之后,我们会有什么想法呀?我们会想象到这个是不是就是咱们一种最普通的这种请求跟想的过程了,咱们之前做的最普通方式应该就是这么做到的吧,那下面给大家把这张画,咱用一张图来详细表述一下,我在里边画一下。
01:14
这里写到咱们这个位置有一个叫客户端。然后有一个什么,就是服务端。在这个位置,这个叫服务端。然后除了服务端之外,它里边还有一个叫数据库。这是我们请求想操作中基本上都会见到的几部分,那这过程怎么样呢?给大家画一下,当我们在客户端过程中发送请求。那咱们请求之后,是不是要到咱们的服务端呀,这过程肯定叫请求,而在请求过程中,咱的服务端是不是可能会操作数据库,或者说得到数据库中这些数据,那这过程他肯定要去查询数据库,或者说操作数据库。
02:12
然后数据库把数据给我们,是不是要返回,要然后咱们通过服务端把数据库得到数据,最终返回给咱的客户端,在客户端做个显示,这过程叫什么,是不是叫响应啊,所以大家看到这个过程应该是咱们一种最普通的请求跟响应的一个流程,这各位应该能给他看懂。但是这个过程啊,我在文档中写到,如果说啊,你是一个比较普通单一的项目啊,这么做是可以的,它只属于什么,你的并发请求相对较小的情况下,这么做是比较合适的,它的成本应该也是比较低的。就是个请求查询数据库,想过程,没有什么特别地方,但是呢,大家注意。
03:06
在我们实际的开发中,就是随着信息量的不断增长,访问量、数据量也在不断的增加,以及系统的业务复杂度是不是也会增加呀,而在这个时候咱就要求我们这个项目或者我们的系统的请求,这个数量,或者说并发的要求,是不是要求会越来越高啊,如果说你的项目请求数量很多,并发量又特别大。那咱用这种方式可能会造成什么问题,你的项目是不是只有直接崩溃了,或者说你这里边服务器会出现很多的性能的瓶颈,所以它会有很多的问题,而这个问题我们该怎么解决呢?首先给大家强调,可能可能会想我们有一种解决方式,那咱就把这个就是服务器这个电脑的配置给他提高是不是可以了,比如说之前你的服务器是32个G,那我变成128个G,是不是可以这么做,但是你注意,如果你这么做的话呢,其实啊,并不能从根本上解问题,它只是单纯提高你电脑一些配置。
04:19
就好比什么呢?给大家举一个例子啊,这个例子是什么?给大家注意,假如我们现在啊。在这个地方有一根很粗很重的木头,而我们现在呢,想找一匹马把这木头给他拉走,但是我们现在问题就是一匹马是不能拉走这块木头的,那咱可以怎么做?怎么做?我们肯定会想到我多找几匹马是不是就可以了,而我们肯定不会这么做,找匹更健壮马把它拉走,一般咱应该不会这么做,咱要找很多匹马把他是不拉走,所以咱们现在做程序,如何提高你成立的请求和并发呢?也可以遵循这种思路,而这思路是怎么做到的,就是咱们马上要说的这个概念。
05:11
什么概念就叫做负载均衡?通过负载均衡就能提高你的请求数量,或者说提高你的并发数量,那这负载均衡它到底是个什么东西?这里边咱先看一下这段描述,然后给大家画张图,咱们详细解释一下。看这段话,这里写到我们可以增加服务器的数量,然后将什么请求分发到各个服务器上,将原先请求集中到单个的服务器的情况,改为什么请求分发到多个服务器上,将负载分发到不同服务器,也就是咱说的负载均衡的这个过程。这段话给大家先复制过来,就是我们第一次看的时候呢,各位可能不理解,没关系,我马上给大家画个图,咱通过图把这概念我们做一个详细的一个分析。
06:10
好,那下面给大家就把这图我们来画一下,说一下什么叫负载均衡。我来写到这个位置。这个叫负载。均衡,那负载均衡具体怎么理解,我来画一下啊,首先比如说我们现在也是有一个客户端,然后咱是不是肯定有服务端,那服务端中呢,肯定可咱可以有一台服务器,也可以有多台服务器,假如说我现在就是有多台服务器,咱就做这种叫做集群的部署。比如说有三台,三台呢,咱就对应三个tot。比如说第一个淘开的端口号是8001,这是第一个,然后第二个是8002。
07:00
第三个是8003,这是我们的客户端和服务器。那大家注意,按照咱们最原始的方式,我用客户端是不是就是直接去请求服务器啊,但是现在按照负载均衡方式,我们不是这么做到咱怎么做,在你发送请求的时候,首先咱要经过一个东西,就是咱们刚说那个叫代理服务器。代理服务器各位应该能够理解,就是他通过代理服务器把你的请求是不是给你转发到不同服务器中,所以他首先要经过我们这个就是反向代理服务器。而反向代理服务器,咱用到的就是咱学这个index。那这个比如说我们写一下,假如说反向代理服务器端口号是9001。那大家说这过程应该是怎么请求的呢?
08:03
咱应该刚说过,咱来画一下啊,当我客户端发送请求,首先是到这个返向代理服务器啊,然后反向代理服务器根据你的请求给你就转发到是不是就是不同服务器中,比如说801802或者803,这过程应该叫反向代理,当然这个负载均衡在里边怎么填出来?给大家说明,咱说个具体例子。假如说我现在啊,一共我们有15个请求注的描述啊,十个请求,那什么叫负载均衡呢?就是你现在通过这个反向代理服务器,或者说N,这把这15个请求平均分担到你的三台服务器中,那大家考虑15个请求有三台服务器,每台服务器应该有几个请求?
09:01
几个请求是不应该是有五个请求,就是这是五个请求,这个是五个,这个是不是也是五个,所以咱们现在这个过程就叫什么,就叫负载均衡,就是把你的请求通过这个NX给它平均分担到你集群中的不同服务器中,理想状态就是每台服务器有五个请求,实际中可能或多或少,但是它也是力争把这请求平均分担到服务器中,所以这个过程就叫什么,就叫做负载均衡,所以通过一张图把这过程给大家做个说明。然后这个图说完之后,咱们回过头来再来看一下这段话,现在这段话应该就很好理解了,咱看一下啊,这里写到。我们要怎么样增加服务器的数量,咱是不是有三个服务器,然后增加数量,怎么做将请求分发到各个服务器上,也就现在我将是我请求分发到是不是三台服务器上,就是这个过程,但是这里边这里还写到它就是将你之前的单个服务器改为什么分发到多个服务器,而将负载分发到不同服务器,什么叫负载分发,也就是。
10:20
把你的请求平均分到互动服务器上,所以这个过程就叫什么,就叫做负载均衡,在我们的实际的互联网项目中,这个负载均衡这个过程我们是经常会做到,一般项目中都会做到这种负载均衡效果,所以咱们把这个概念给大家就做了一个解释,大家要理解什么叫负载均衡,然后具体做法咱们一会儿会做一下详细的配置。所以这个我们就说完了。那说完之后呢,咱们再来说下一个概念,这个概念也很重要。叫什么?
11:01
动静分离。那我们第一次看啊,可能大家不太好理解,什么叫动静分离呢?看一下文档中一段描述,就这句话,这里写到说为了加快网站的什么解析速度,咱们可以怎么做?把一些动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力。这句话描述的就是对动静分离的一个解释。但是它具体什么意思,我给大家也是画张图,咱来具体说明一下什么叫这个动静分离。那我们来画一下。我就写到这个位置。动静分离。首先咱先画一个我们简单的一个请求过程。在里边画一下啊,按照咱们刚才说到的,我们这位置应该叫什么。
12:02
它是不是叫一个客户端呢?这个位置叫什么,是不是一个服务器啊,比如咱通俗说那个Tom k。服务器客户端,咱通通说那个浏览器,当浏览器去请求服务器的时候,首先要经过什么。是不是咱们那个N这个词的反向代理服务器。服务器就是咱说的index,所以它的请求过程应该是这个样子,当我发送请求,首先到我们的恩D这的反向代理服务器,然后nnu把你的请求给你转发到这个Tom he中去,咱是不是应该是这个过程,而按照我们的普通方式,咱们在汤开的里边是不是应该部署我们所有的项目,比如说在项目中有我们最基本的HTML。
13:00
包括这些CSS以及一些JS文件,大家注意这些文件你说有什么特点?这些是不是一些静态页面,有的是TMLCSSJS,它们里边的内容应该都是固定的,这些都是一些静态资源,而在Tom hat中,除了这些静态资源之外,还有一些动态资源。什么叫动态资源?说的比较简单点,比如咱之前说过那个。JP。Select等等,这些是不是叫动态资源,所以按照咱们普通方式,我们在toppad里边就是把我们的静态资源和动态资源都给它部署到了我们的Tom k里边去,之前咱是这么做的,也就是说你每次请求,不管你是静态资源也好,还是动态资源也罢,都去请求咱top catd这种方案就是用单服部署你的所有的这个内容,所以这是我们最普通方式,但是这种方式呢,有它的局限性,比如说你现在请求静态资源,请求动态资源,都去请用Tom het,那给我们Tom KT是不是带来更大的压力啊?所以针对这种问题,我们就想了一种解决方案,这个方案是什么?
14:22
就是它叫什么动静分离,现在我觉得这个应该能理解了,什么叫动静分离,把你的动态资源和静态资源给它分开进行部署,这过程就叫动静分离,那这部数具体该怎么来做给大家,在下面咱们详细画一下这个动静分离的一个效果应该是怎么样的。我画到这个位置。首先我们肯定是有一个客户端。然后这个位置肯定有那个服务端,或者说服务器,咱通俗说就是我们那个tomcat。
15:07
这是服务器,然后在客户端服务器中间有咱那个反向代理服务器,就是咱们通俗说这个index。我画一下,这个叫Alex。然后按照咱们动静分离的方式,我们要怎么做呢?给大家强调,咱们发送请求先到我们的恩。N这个词呢,根据你的请求,把你的请求是不是转发到不同的服务器中,但是按照动静分离的方式,它该怎么做呢?注意啊,在咱们的tomcat中,这里边只部署什么。大家说部署什么,就是咱们一些动态的资源,比如说你的JSP。比如说我们的就是把一些动态资源部署到这个to中去,所以咱们当你反问这个词,如果它是动态资源,它就去访问这个Tom he,把这个请求,包括把数据得到,但是如果说你是静态资源,那这个时候怎么做到呢?
16:16
大家注意啊,它的做法就是咱们需要有专门异态服务器,这服务器可以叫做静态资源服务器,在里边呢,专门做什么?就是来放一些静态的资源。主的描述啊,里边就是放一些静态资源,然后咱们让这个N,这个X指向我这个静态资源服务器,比如说我们在请求的时候,当你请求是一些静态资源,那艾尼X它就到静态资源服务器中拿出静态资源给你返回,如果说你请的是动态资源,那它就到什么地方是不是淘开中把动态资源给你返回,所以这个过程就叫做动静分离,也就是说把静态资源和动态资源分开进行部署,而这过程通过N这个是可以做到的,所以这个是咱说的这么一个基本的概念。
17:14
我把这张图给大家,也是拿到这位中来。这个过程就叫动静分离,所以说到这里,咱就把这个N这中一些最基本的概念我们就说完了,要求各位主要掌握这么几个概念,第一个就是什么是反向代理,第二个叫负载均衡,第三个叫什么动静分离,包括我写这句话和这些图,要求各位能给他理解。好,这样的话,咱就把N中一些最基本的概念我们就介绍完了。
我来说两句