00:00
大家好,欢迎大家继续收看上硅谷的linus加云计算课程,我是沈超老师,我是汪洋老师,那这节课呢,我们来看看负载均衡集群的这些原理啊,嗯,好,那在这章里面呢,我们会把它分为五个片段,第一个片段呢,我们进行负载调度集群的这么一个介绍说明,简单介绍一下,对那第二个呢,是说我们的负载调度机群的相关原理,还有以及第三个片段LS的工作方式,这是非常重要的一个点,这其实也是原理,但是呢,LS比较特殊,它这个有这个常见的三种工作方式,我们需要介绍一下,对,那第四个呢,是我们其中的一种工作方式,也就DR将直接路由模式的构建,以及它的相关性原理的简介,还有就是我们的nat模式的构建,以及说明,当然我们还有第三种创模式,我们只会讲原理,因为这是在生态环境中,用途可能没有前两种更大,哎,隧道的这种情况很少见,我们都可能简单知道就行。
01:00
好,那我们先来看看我们的这个四代均衡集群的这个介绍。那我们呢,这里挑了一个这个非常常见的外部负载均衡集群的这样一个典型的这样一个拓扑图,我们来看一下这个负载均衡的构建,那首先啊,用户连通过互联网访问到了网站,其实你并不是直接连到了外部服务器上,哎,如果没有这个集群的存在,其实如果你就是单台服务器,你可能用户就直接访问外部服务器,然后外部服务器给你返回,这个访问就结束了,对吧?但是现在呢,其实我们并不一定是,如果我们访问的东西是有这个负载均衡嘛,那么你访问到了,其实并不是直接是外部服务器,你访问到了这个,也就是说暴露在互联网上的这个家伙,其实是我们的负载均衡调度器啊,也就是负负载均衡这个这个服务器由他来访问他他的工作之后,他现在接下来之后呢,他会把你的工作,你的访问平分,在用轮询的方法,一个一个的第一个给他第二。
02:06
这给他第三,给他第四,给他第五个,接着给他发给真正的外部服务器,当然啊,后面这四台外部服务器上,它上面的数据是一样的,访问哪一个呢?网站都是一致的,所以不论访问哪一个效果都一样,当然如果啊,他还需要访问数据库,那么它后台有可能还会有数据库集群,哎各位如果访问量小的话,有可能是单个服这个数据库,或者是两台主存配置的这样一个数据库,当然也有可能像我们画的这种拓扑图啊,这种,当然这个拓图上是用red来做的数据库存储啊,这个是能可以的,那这个时候也有可能搭建这个数据库存储器群,那各位这个。就是单独的另外的存储集群了,我们等这个外部集群,等我们这些负载均衡啊,直接讲完我们再来说这个存储集群,那我们暂时可以先不理他,你可以理解为访问他如果调数据库,数据库把数据返回给外部服务器,由他返回给负载均衡服务器,再由它返回给客户端,诶客户端就可以得到数据了,这是一个基本的访问流程啊这样一个情况。
03:16
当然这里面还有一个集群。就是这里。我们的负载均衡服务器会有一个备份服务器,这就是我们说的高可用集群,对吧,那这是其实这一张图里面包含了三个这个集群啊,一个高可用,一个就是我们的负载均衡集群。另外一个就是我们的存储集群,存储集群那今天呢,我们先来讲这个就是L这个LS为代表的软件的这种负载均衡信集群,那我们把这个图这样看太乱啊,因为比较多给拆开,诶拆开我们先来看看负载均衡设计群,我们看这张图,这张图其实是从刚才那张图可以把它理解为拆出来的一个部分,对吧,也是我们今天的重点负载均衡集群的这么一个头部结构。
04:08
那在这里你可以发现用户他的访问经过互联网以后,到达我们的负载,这里写的是平衡器,对吧,这是它的别名,我们可以讲负载调度器都是一样的,负载均衡服务器的都行,嗯,然后呢,它呢会接受到用户请求以后,会分担至不同的后端真实服务器,Real,对,那当然他会根据不同的算法去确定到底要把请求分给哪一台,看给谁,最简单的就是轮询,最简单的轮询,但是还有其他的更复杂一点的特殊军队,特殊情况了,对,那这些比较复杂的一些算法呢,我们在后面也会添加,我们在后面再说,对,好,那也就意味着我会分为两个部分。去重点介绍第一个我们的调度器,重点第二个真实服务器的构建,那这个部分其实我们之前在网络服务,网络网络服务已经把它给over了,那在这里我们主要解决的就是负载均衡器度器这个真实服务器吧,阿帕奇也行,N也行,随来做啊对,好,那也就是这么两个重点,对吧?那在这里呢,我们还是主要看我们的负载调度器,对好,那负载调度器呢,它有很多的分类,就像咱们之前的集群一样,甚至分类更广泛,嗯,那在这里呢,我们先看第一个分类,也就是我们的软硬件分类,嗯,那软硬件分类呢,左边统一软件,右边我们的硬件,对硬件负载均衡设备,好,那第一个呢,我们可以看到这里叫iOS,嗯,IOS相信大家已经听过,我和呃,沈涛老师之前已经提过多次了,对吧,也就是我们现在用的最普及的软件,负载均衡。
05:51
对对飞啊,对非常重要,它非常重要is,那还有就是我们的N,诶有些同学比较奇怪了,对吧,之前诶我们说web服务器的时候说到的ne,对这里怎么说,负载系统依然是它非常强大,它除了可以拥有这个普通的网页的这种服务功能之外,它还具备这种代理,也就是负载均衡的这种功能,对功能非常之强悍,那当然它还有一个企业版,功能更为强,融合了我们的控叫杠,相当于是一个插件的含义,好,那还有一个呢,就是ha pro,那它是Linux ha项目中的其中的一个子项目,专门去做负载阅读器的,那用途呢,也较为广泛,当然拆分开来的话,在方面可能跟iOS,呃,没有它用途这么广,那拆成七层的话,跟可能没有它的用途更广,那也就是说我们。
06:51
他可能学习的就是LS和NEX,对,那什么是式层,什么是气层,我们去买个小伏,等会我们再会去介绍,好,那这是左边的软件群体,当然我这里列举出来的并不是咱们的所有,对吧,而是事实上我们最为重要的这么一个组成部分,对,那右边的是一个硬件的典型代表,我们通常把它叫做F5,嗯,对,就是老辈老辈的这个家伙,对对对,那这个可能在我们的课程上中,咱们说实话这玩意儿你就不要想了,第一我们讲你也没法练,第二这个东西其实绝大多数的公司还是就用软件的居多,因为硬件的这个东西虽然性能好,但是它相比来讲,它的性价比没这么高,就是主要就是贵啊,对,它这个价格可能没有达到它这个这个性能比LVS强大到这个这个地步,能产生质变的地步,所以其实在实际工作中,软件呢,反而还是更多一点的啊对好,那有些同学可能会。
07:51
说了,诶我以后要见到F5,怎么会去区分它到底我怎么知道?诶,这是交换还路由还是F5啊,那其实最简单的辨别方式,其实它的工业设计比我就个人觉得哈,比较low,就这里有个半圆球,它会发的红光的那一种,你知道吗?就是对,我相信你见到第一面应该就能认识到这个东西,你见了你就知道了,对对对,好,那这是我们的软硬件分类,嗯,比较简单对吧?那我们接着继续往后看,我们看我们的工作层级的区分类,好了,这个图呢,我们可能已经不是第一次见了,这个图我们都已经见过了,是吧?这个osi模型的七层分类七层模型对吧?我们简单回顾一下,从下到上,物理层负责实际的比特流传输,电器特性定义,数据链入层这个麦克地址组帧麦克地址编制对吧,就是Mac地址的这个这个传输网络层呢,就是IP地址的这个这个编制,还有路由选择在这里层进行传输层端口。
08:51
确定传输协议,确定是TCP还是udp了,确定它的这个端口,至于绘画层,表示层,其实在我们实际应用的时候,他们都被合并成了一层,就是应用层PCB4层模型当中是这个啊,是一层,那么其实它就是什么给我们识别了什么,我们用户能够识别的东西,比如说这个主机零,比如说我们的一些常见的应用层协议,比如说HTP协议都是在应用层来实现的,那这是七层模型的简单回顾,我们就讲过了,快速一说就行了。好,那对于OI赛其实模型来说呢,其实当中有三个部分可以进行我们的负载均衡,嗯,也就是实现我们的负载均衡集群,诶,没错,那第一个部分,也就是我们在这里的二层数据链路程,数据链层对这一层级非常重要,因为我们会发现,对吧,所有的数据报文去发出去的时候,都会经过这一层,没错,因为交换机在这层,对对,然后呢,那它典型的代表呢,就是我们。
09:51
的F5,哎,我们的硬件负载集群这个均衡,均衡器在数据链路层,对,但它在这儿,它怎么办?它靠怎么发呀?嗯,那这个我们需要去引入一个别的东西,就是我们国家的带宽问题,那大家玩过游戏都知道有什么,有电信区啊,网通区啊,对吧?如果你家买的是电信宽带,你去广东去打游戏,一定会发现品质非常高,原因是好点,但是还是有,那原因是什么呢?主要的原因就是我们国家的电信跟联通带宽是分开的,对吧?它只是对,它只是在北京的某家机房内部进行连接,也就意味着你的所有报报文且要发到北京,再经过机房中转,再发到你家的联通宽带上,对,那这个速度一定是非常较慢,对吧?那游戏如此,那网站是不是也一样的,对对吧,那为了优化它的网络里面速度嘛,我们会去向电信公司购买多个不同带宽,比如电信的,电信买一个,网通也买联通的,然后呢,呃。
10:51
教育网的啊啊,教育网淘汰不用三钱了,那主要就是移动,然后电信啊,网通现在就是三家,那我们可能买多个带宽以后呢,去接入到我们F5内部,然后他会去根据不同的用户,因为用户会有不同的公网地址,对吧,他会去确定不同的呃,供应商啊,用不同的供应商的专线去返回数据,也就是说你买三根线,各个运营商三家运营商都买一个,然后把它都接在这个硬件设备上,然后呢,这个家伙很智能,它可以判断你的来源用户是是网通线的还是电信线的,它用它最快的这根线来去响应它,它可以在这种数据量层可以做到类似硬这样的均负载均衡,对对对,那当然了,到今天为止依然没有软件可以实现,单独的软件可以实现这么一个方案,但我说的是,呃,我们公开的一些方案,可能某家机构已经实现了,对吧,但是没有把这个软件技术开源。
11:51
应该是没有了,还是较难的,应该是这种东西是硬件的性能的这种东西其实还是很难取代,如果我真有硬件需求,比如说我需要考虑,当然也有另外一种方法,就是我们原先做游戏的时候,我们更笨,或者这种方法我们觉得效果更好,我们干嘛?我们在北京搭一个这个网通的集群人,我们去上海再搭一个电信集群,通过这种方式来做,然后也可以这个分摊我们压力,然后呢,也可以让,其实游戏一般都是这样的,你们会发现什么,各个地方都有,目的就是上升更快啊,游戏是这样做网站不一定,因为这个成本比较高啊,网站我们现在有CDN啊,对CCDN也是比较好的,这个这个可能就更复杂了,我们后面再说,我们说的有点远了,太太回来回回来好,那这是我们的第一个成体数据链路成可以做,当然当然这个F5除了可以做这个数据链路层的这个这个分发它也可以这么做,是情啊R往上一层的和应路层他也能做,它可非常强大,这曹哥你把。
12:51
他们要说的给暴露了吧,那也就是我们要说的第二个成绩了,刚才超哥也说过了,我们的传输层,嗯,那传输层在这一个成绩比较重要的特点的东西就iOS,嗯,当然超哥刚才也说了,我们F5也是可以做的,没问题,那iOS在传输层的一层里,我们可以理解为我在这一层向下的所有内容都可以观察到,诶这个我们在讲osi模型的时候,我都说过了,越上层的家伙越智能,它能识别比它低层的所有内容,就是说只要比它低了传输层的,它都能识别,那也就是说端口能识别,IP能识别,当然Mac地址没什么意义,它只是在局域网内才能这个起到作用,对吧?统一广播域内部,那也就意味着我在iOS的时候可以根据我们的端口,端口IP地址去判断他是否要进行负载,因为并不是所有的人过来以后都需要去进行某种服务的,对吧,还是需要去判断一下会啊。
13:51
IOS4层的,嗯,好,那再往上也就是我们的应用层了,嗯,应用层这一层里比较典型的代表就是我们的I,那应用层这个家伙呢,他也是同样的问题,他只要比它低的它都能识别,但最大的情况就是所有的应用层协议,比如说我们的网页,网页HTP协议对吧,那它就能识别了,那能识别HTP协议就代表它能识别域名了,对吧?DN这种DNS协议它也都能识别,它就能识别名字,包括你的主机名它都可以识别,好对域名和主机名来进行负载分这个分发,那有些同学可能会想问说,哎,我们拿域名去判断有什么含义啊,嗯,因为。
14:34
大家有没有听过一个情况,就是我不同的IP地址,嗯,可以解析到一个域名,诶,对呀,没错,我一个域名也可以解析不同的IP地址DNS,错吧,对吧?所以说在这里我们可以进行某种分工的时候,就需要有特定的一些不同的层级参与进来,好这样做可能就会更加复杂,对吧,确实是,但是呢,呃,功能更多,到时候怎么选,其实就看你来做了,你的选择也就更多,对吧,能应用到的场景也会更丰富,是的,那当然。
15:08
IPHONE5这个硬件的话,七成它也是可以做的,对吧?刚才我们也已经说过了,确实很强大,所以说有很多情况下,如果有一些有钱的公司,对吧,他可能会把诶他俩给揉合起来,诶有可能就会分了,诶这两个东西还能揉合起来吗?确实是可以的,我们就要多生负债,对吧?可以先经过它分发一次以后分到is,甚至可以再来一层,当然当然我们不要有疑问哈,就是以后去工作以后,啪啪啪眯着眼往上上,这肯定是不行的,我们要实现对应的功能的时候,我们再去引入某种技术,这个只适用于特殊场景,可能多个软件多层的负载均衡需要联合应用,一般来说常见的负载均衡都不需要这样啊,大家这样,我们原先发现过,我们给我们的学员讲说可以做四层的,因为我没有二层的嘛,我们能做四层,也能做七层,然后呢,我们就会发现,当他做实验做项目的时候。
16:09
所有的班级的这些所有的哥们他妈全都是四层加汽车,我靠,就让人有点他妈的目瞪口呆啊,对对,而且够用就好了,对,而且关键是它没有实现特定的功能,对,我会知道,对吧,每引入一个成绩以后,你的响应速度就会更慢,这是一定的,对呀,你功能越复杂,这个东西就肯定越慢,消耗的资源就会越多,肯定是,嗯,好,这个东西就是看你到底要不要,换句话说啊,我们都会讲组怎么组装是最优化的,反而是考验你的这个能力和你的经验的时候,OK,好,那这节课呢,我们主要介绍了一下负载均衡的这些原理,哎,我们大概看了一下它的top图,然后呢,我们介绍了一下它的分类,从软硬件分,也可以从它的这个所在的网络的这个层级来进行分级,都是可以了,好,那这节课的主要内容就是这样,我们下节课再见,再见。
我来说两句