00:00
好了,同学们,最后呢,N还有另外一种这个限制,这请求的方式就是并发数的限制,这个并发数的限制怎么理解啊,其实就是来自于我们这个客户端啊,它的并发请求数啊,比如说我是一个人,然后呢,我去并发请求你的这个,呃,这个机器就是开了多线程啊,那我可以,呃允许你开多少个线程啊,如果要用过迅雷,你肯定这个知道,你在上面可以设设置这个线程个数啊,有的服务器呢,线程个数设置多了,它也没用,它连不上。这个长下载东西的小伙伴肯定知道,那么这个并发数的限制,呃,在这个N里呢,它使用的就是这个简单的计数计算法,其实就是加一加一加一。啊,这个计数计算法在相加迭代的这个过程当中啊,它也需要这个内存空间,这个配置起来呢,其实也很简单啊,我们先带大家配一下看看这个效果。这是之前的这个,呃,我们的这个QPS的限制,那么这个它的。
01:05
客户端并发量的限制呢,就是在这变成了con。这是请求嘛,对吧,这是连接啊,就是连接数或者叫并发数的限制都可以配置的方式呢,也跟这很像,使用什么这个指标去做这个限制啊,还是这bary remote a DR。然后也要配置一个zone,这个zone呢,和之前的这个呢,它不能不能重名啊啊在这呢,这不是one吗?我们在这再来一个two。它也需要内存空间去做这个缓冲,然后这个后边这个rate,这跟它就没有关系了。把它给清了,然后在这儿的这个配置呢。呃,使用的就是呃。Limit conn。这个配置,这个配置就可以限制,呃,当前这个客户端的并发数,那我们现在呢,设置成一,然后使用的是哪个这个命名的空间就是哪个zone呢,嗯,是to。
02:09
啊,这么配就可以了,一共两个参数,呃,这个限制我们配完之后啊,它可以配合其他的一起来使用,嗯,比如说这个,呃。Limit I IQ和这个limit RI,然后我们先把这些都给除掉,我们单独看一下它的效果。嗯,起来之后我们还是跑一下这个jama。地址什么也都没变,然后这个注意看这个请求啊呃,我们现在呢,开十个这个线程啊,然后就请求我们看看这个效果啥样的,看这个table吧,走。诶全都完成了,大家看中间啊,仔细观察的话,它中间会有卡顿的这种现象。它是一二三四五六七八九十。
03:01
这的这个three name,你看这个three group1杠一,一杠二,一杠三,这是不同的线程,呃,他用a client去发的请求,你们去new这个新的这个client这个对象的时候啊,它也是需要消耗时间的,所以在启动这个线程的时候呢,中间是有线程的间隔,线程启动这个间隔的。那么在这啊,这个这么去测试的话,其实看不到效果,一是这个请求的量呃不多,再有就是这个。我们这个数据啊,有点太小了。它你看这个具体的返回的这个数据。这个body就这点儿对吧,很快就把它给拉过来了,那我们在这儿呢,再稍加一下限制吧。呃,第一呢,我们把这个。它的这个循环次数增大一点。嗯,十个十个线程,十个这个。呃,这个这个循环,然后我们看看这个这样这个能不能出来效果来走。
04:03
其实还是没有效果啊,就是这个没有限制住嘛,我们只希望一个客户端,呃,并发请求数一,那这样的速度太快了,那去了马上回来,去了马上回来,这看不着效果那。我们限速啊,让它这个速度呢。让它变得慢一点,呃,它默认单位是字节数啊,比如我们改给它搞成20个字节,这速度就变得比较慢了。然后重启一下几。然后再去发请求。诶,大家看这会就全都是叉了,为啥全都是叉,这就是因为。一旦要限制了并发请求数,他就会等待之前你第一个请求,一旦你等你处理完之后,他才会帮你去处理第二个请求,这这是针对于同一客户端的并发请求数呢,现在就只有是一,那这个成功的呢,肯定是有对吧,只是现在还没给我们反馈回来。
05:04
嗯,是不是这个速度设置的太慢了,20个字节。咱们把它稍微改的稍微大一点,这还是1K吧,看1K能能不能出来这个效果。我们把这个。重新再重启一下。然后在这看啊,你看过了很久,这有一个成功的,这又一个成功的是吧啊。他需要好长时间才能够给我们反馈回来啊,然后整个这个群都结束了,我们清掉。然后给它改成1K,我们再看看这效果。诶,你看速度稍微快一点了,对吧,啊,同时三个完成了对吧?啊,这是每秒限制这个呃,这个这个这个并发请求,它是一。啊,你看这个三个它是在哪,Three group,它全是一。对吧,啊,它是在一个线程里边完成了三个请求,那你并发的这个数量呢。
06:03
其他线程全都没有完成,大家看见了吗?没有任何其他的线程,现在只有这个,呃,这个一号线程能够完成请求,这就限制住了它的并发量,并发请求只能是一啊,你想多线程下载,这肯定是不行的了啊,那么咱们在这个限速的这个环节里边呢,一共给他讲了三版斧,第一个呢,就是服务器端的QPS的限制啊,通过limit req来限制啊,这里边呢,用的是漏统算法。第二个呢,就是呃,它的带宽限制,这里边用的是令排统算法,第三个限制呢,就是这个呃,它的并发,并发线程数或者并发数的限制啊,这里边儿用的是计数器算法啊,总共这里边儿呢,有三种限速方式,还有这个三种不同的算法实现啊,这就是咱们整个这个呃限速的这套呃课程里边的内容啊。
07:02
呃,这个限速这种这种这种应用啊,啊,或者这种方式在实际的企业当中的应用是比较广泛的啊,主要就是针对于不同的场景去做不同的配置,我们的服务器上线之后,不可能无无休止无止境的去接受用户的请求,也可以通过这个限速啊,限制带宽的速度,呃,限制这个用户的并发个数。来有效的去,嗯,避免掉一些这种恶意的请求,然后让我们的服务器呢,运行的时候呢,会更稳定一些。
我来说两句