同学们欢迎回来,这节课,我们来讨论分布式系统的那些事当然负载均衡的问题,什么是负载均衡的问题,呢就是上一节课。我们讲过分布式系统呢可能会有非常多的服务器来呃来组成这个系统。那么,这个系统,它是如何分工的呢?当很多用户都过来发送请求的时候,这些请求应该怎么样,去被分摊到不同的服务器上,让他们来处理呢?这个呢,实际上就是负载均衡要解决的一个问题。负载惊鸿,从字面意思就是让我们的服务器的负载,都能够均衡些。
这是字面意思。那么,我们是怎么做的呢?我们还是一个WEB网站为例子,当非常多的用户同时或者说任意同一段时间里面都来请求我们的系统的时候,我们就要把这些请求给他给分流分流到不同的服务器上。然后让他们老师让不同服务器呢,然后都能够同时来去处理这样用户。那么,这样做的一个目的是什么呢?第一个就是一定要让我们的服务器就是能够均匀地去呃去承受这些用户的请求,其实从用户的那个角度来讲呢,就是它能够及时的,它发出的请求能够被及时都给处理。
那么,我们来举这么一个例子啊,假如我们没有负载均衡的情况会怎么样?一个分布式系统,哎,哪怕强,如美国队长。那么,非常多的一个系统,它来一个请求就出了一个请求。那么,他也是处理不过来的,而好在呢我们是有非常多的一些服务器,我说一些计算单元,然后来平摊。那么,这些工作,这样的话,我们就我们就会让这个系统,呢然后在同一时间就可以处理非常多的一个系统,呃非常多的一个请求。那么,我们是怎么样去用什么一个方法,然后去把这些系统给它分流,呢这个时候,呢,就说到一个负载均衡的一些策略,最常见的一种两种策略呢是一个时装的,另外一个是软的意思,呢绒的的意思,呢实际上是轮询的意思就是来一个请求分配给你当前的第一台服务器。
那么,来第二个请求的时候,然后就把这一个请求呢,分配给第二个处理器进行呃进行处理,第三个就返回第三个,然后所有的服务器转了一圈以后,然后就这么轮询的完成。那么随机这种策略呢然后也是很好理解了。当一个请求过来的时候,它会随机的a选一台服务器,给他去分配处理这么一个星球。这样这两种复赛翻飞的策略,呢然后都能够让所有的机器呢然后都在运行,而不会出不会出现某一台机器,比如说不干活,另外一些机器又特别忙是吧?
这样子,呢然后就可以更快地去处理一些用户用户理解请求呃这么做的一个目的,呢实际上就是为了让那个用户呢然后及时的去那个得到呃得到处理。其实我们有的时候,我们可能会去一些。比如说政府部门或者说去银行办业务的时候,其实我们会排队,其实,这个原理呢,其实已经是非常类似了,在银行当中获得政府过程当中,它有非常多的一扇窗口。那么,他的那个排队系统用的是什么样的策略?呢其实很多时候是一个荣的是吧?那其实也不全是中的落地呃也不全是一个软得对,因为实际过程中很复杂,其实,我们解决计算机的问题。
啊跟我们的解决。现实生活中这么一个I期银行排队这么一个我其实很类似的,但是呢,我们也面临一个一个问题,就是有的服务器呢,年富力状有的服务器呢,性能比较差。那么这个时候你就不能用,就简单粗暴地用轮询,或者说说用随机的这种方法变得给他去哪个范围这个任务。那么,这个时候,有用的一个什么方法呢?就是一个加权,我们叫价钱的一个轮询,有些有些服务器呢年富力强,我们给他给他个全职,比如说一点吧,有些机器呢弱一点,啊我们给它的系数是0.8。
这样子的话,那么,一点的服务器他就可以接受更多的那些处理接触更多的请求去处理它,能够更快的呢,然后去返回那个性情用户请求的结果就有这么一种方法。那么,我们除此之外呢,实际上还有一种负载均衡方法。教你的意思呢,是叫最小负载的一种方法,呃这句话是怎么理解呢?这句话呢?实际上是一种比较,我们设置权重都要学人工的去标,实是把这台机器是个年富力强的还是一个呃,比如说是一个特别就的这么一个电脑,一个信号。那么,我们能不能自动系这个时候呢,实际上在我们的负载均衡里面,我们会写一个算法,我们会依据。
比如说CPU某一台机器的响应时间,或者说某台机器,它的那个队列的一个等待时间,我们通过一个一个算法,然后我们就能计算出它的全职来获得全职高的,呢它依然会给他分配更多的更多的一些请求我举个例子,大家如果是做c加加开发的话,会有一个b r PC的c加加框架,它里面那就有一个叫LA的这么一个负载均衡的一个算法,它呢,就依据它下游的服务器的一些等待时间,比如说CPU的负载还有那个返回的状态么?和响应时间,他就能判断出这台机器是不是一个性能更高的机器还是一个性能差的机器?
这样子的话,他就可以比较自动的去那个吧,就是自动的,去给那个依据机器的不同性能给他分配不同数量的一些请求。嗯,咱们再说一下。那么负载均衡他,有的时候,它是依据什么呢?我们依据什么来判断,就说我给哪台机器呢?其实还有一种方式就是我,如果我们做,如果我们做一个映射和随机的话,我还可以通过。比如说听说我校4层4层负载均衡还有呢?叫7层负载均衡这句话是什么意思呢?7层和4层负载均衡脑,只要指的是TCP IP当中的第7层和第4层4层呢,是指我们依据IC IP的地址呢,然后呢,我们就给他进行随机的去分配。
呃依据这个IP地址,然后给他做负载均衡,然后给他分配的后面相应的机器当中去。还有一个7层负载均衡,呢实际上是一具,比如说第7层实际上在TC标题里边是应用层,那么我们就一句在应用层当中的一些什么一些带过来的一些信息,我说是一些cookie,就类似于这样的一些应用带过来一些信息呢,然后给他趣,唉,比如说随机分配给那个下游的一些服务器,这个呢,是依据网络环境,然后我们来去见4层呢还是西,曾因为4层大家都知道的IP内层会更基础一些,会底层一些好了,大家我们来就是总结和分享一下。
总结一下,就是我们的负载均衡的方法都有哪些几种呢?实际上其实呢?都有这四种,主要都是有4楼,第一个呢,就是轮询随机。还有最小负载对外还有一个最小链接,但是也让过程中我们可能不是在实际过程中不会经常常见,我们来那个给负载均衡下一个定义啊。那么,食什么是负载均衡负载均衡,其实它的本质,啊它是一个起到一个路由的作用就是当一个用户过来的一个用户的请求。过来的时候,我们怎么给他录入到后端的一台机器上,让他去处理。
这有这个嗯完成了这么一个负载均衡以后,呢实际上分布式对于一个应用来讲,是否就结束了呢?呃其实不是的,啊就是我们怎么样去找到它下面的服务。呢这个内容呢我们会在下节课的时候,然后进行一个呃进行一个讲解。