00:00
好,同学们,大家辛苦一下,请继续跟着杨哥深入的学习,接下来我们讲解的是sent resource这个注解类,那这个注解类在前面热点T限流的时候给大家呢提过了一嘴,大家呢也算是。嗯,见过一次了,应该不再陌生,而且我在这儿已经说过,结论上而言就是这个命令到这个注解,好,那同学们,接下来我们呢,将详细的讲一下我们的限流跟这个注解的使用,那么现在请同学们就当是从零基础开始,什么都没见过,你们第一次听好不好?来,同学们。我们现在呢,节约时间啊,有些东西我已经提前做好,来先看第一个案例,那么这一讲,我们主要是解决前三个问题。先按资源名称限流和我们的后续处理好,同学们啊。
01:01
来程启动C成功启动,不废话,那接下来啊,我们修改我们的8401,那么泡上面呢,我们呢,就引入了这么一个新的包,其他没动过,同学们能跟上把我们的com姆包引进去。第二个。亚姆没动,第三个,自己先写一个rate limit controller,因为前面的那个flow。Limit controller方法越来越多了,我新换一个给大家好演示啊。那么这块。在po这儿我们就加了这么一个新的,引入了我们的那个payment和comma,这儿我们新建了这么一个CTR来类上一讲以前的我们是不是用这个,要不然以前的方后面的方法越写越多,那么同学们看着我怕大家眼花了,那么现在我又写了一个rate limit ctrller这么一个类,那么这个line加上我们的。Rest controller OK,那基本上就是干这么一个事儿,第一步我们是用by resource这个呢来进行反问,然后请看这个是带了一个斜杠的,是不是按照类似于我们的rest的URL,这个是我们的sentinel resource的一个名字啊,那么这两个OK,那么下面这个是兜底的方法,返回呢,东西呢都很简单,那么下面我们是按资源名称限流测试,假设这是成功,否则超过我们的限流规则了,C resource在我们的控制台这配置的超过了,那么兄弟们你懂的,马上就走444这个兜底的方法,好吧,违背规则了,违背增添的控制台里面配的规则了,那么这个时候。
02:40
Block handle德拉就由兜底来给你处理好,那么同学们这些不再废话,那么我们配置的限流规则也很简单,这一讲我们要突出的是什么?按资源名称限流什么意思啊?同学们,我们一反问了,以后我们这儿是不是有个资源名称叫by resource啊?那么新建第三步,第四步,那么五新增好,那么。
03:02
大于一就跑到我们限流处,这个呢不难啊,同学们,我们呢再试一次,我们从头开始减。那么启动我们的8401,然后呢,启动完成以后,我们待会儿呢,对它呢来进行一个配置,那么现在我们要访问的代码级别就不再是我们的test a,将会是我们的by resource,那么等他一会儿啊,然后呢,我们呢,等它这个限流完成,呃,那个重启完成了以后,我们试试啊好,那么同学们应该差不多时间我们回到我们这儿。大家请看我们8401。一回车可以看得出200成功,按资源名称限流测试,OK,对,这么说能跟上,这是正常访问,听懂了吧?当然我们现在是不是什么都没配,那么接下来啊,我们呢,就要来配置一下我们的这个东东了,那么我们的触点链路列表的形式啊,大家请看这一块,我们的要求是按我们的什么东东资源名称好回到我们这,这个是我们的资源名称,说穿了就是我们由certain resource配置的这个。
04:13
来,现在我们呢,点到流靠或者你。点击这个流控这个规则,点上面流控规则点这个新增也可以,那么现在我们到我们的。触点链路,点我们的流控这个QPS一下,那么这个时候新增OK,那么同学们根据刚才所说的一秒钟一下没问题,如果点的快了,大家请看马上进四四,那么这个时候是不是服务不可用了,OK,那么这有个什么叫flow exception呢?这个怎么来的呢?Exception,这我们是不是带着block,那么换句话说,限流的如果出了异常,哪一个类其实在包后台源码级别呢?Com,不是艾特硅谷啊,这是阿里巴巴的,是一个叫flow exception限流的这么一个异常类来给你处理,那么现在说明什么?只要你一秒钟一下by by resource可以反问,超过了QPS,超过一了,马上就给你报错,那么报错了以后兜底的就是它好,那么这个东东王活。
05:14
下面的我们要讲其他的,因为前面这个快快的过一下啊,弟兄们前面也接触过了,那下面的问题是我们这个测试啊,一秒钟点击一下OK,超过上述,那么就回到了我们的。自定义的限流处理信息限流发生,注意这个时候这个是不是我们自己写的好吧,那么下面我们的问题是这样的。关闭服务,8401你再看看。好,同学们啊。关了。彻底关闭以后,我们稍微等一会儿,它有个响应时间,那么来看看我们生控制台流控规则会不会消失,那么同学们在这儿是不是应该有流控规则,对吧?我们这儿有个流控规则,有一个按资源名by resource,我一刷新。
06:00
没了,那么兄弟们。零食还是持久,不用我多废话了吧,好,那么这个红色的是我们后续要额外处理的,下面再来看啊。上面是按资源名称,就是按照这个。OK,下面我们按URL地址限流,那么其改变也很简单。通过访问URL限流会返回三流自带默认的限流处理信息,什么意思呢?就是上一讲我们是不是自己写了这么一个兜底的方法,你要是自己写了,我就用你自己写了,你没有写我就用系统默认自带的,那么怎么玩呢?还是这个类,下面请看我们呢,直接把这个。转过来。同学们请看啊,各是各的啊,上面这个是一组,下面这个是一组,但是下面这个我的这个cent resource,我并没有写block handler,听懂了吗?所以说这个时候你没有兜底的方法,那么你自己没有写兜底的方法,好那。
07:09
谁说了算。那么这个时候,同学们。好,我代码格式化一下哈。刚才按一个table手误了继续,那这个没有兜底的方法怎么办呢?他将会去用系统默认的好,那么同学们这个呢,是按什么我们的。URL,那我们3000配置台的控手就跟前面不一样了,看到没有,是加了个左斜杠的,明白好,那么同学们我们呢,给它启动,我暂停一下,启动完成,那现在同学们我们按照这个URL的地址来进行一下我们的访问。同学们请看,我这是按URL,上面那个是按资源名称,这是两回事,那现在什么都没配,你怎么访问都是正常的,对不对,下面我们。
08:06
这一块的话呢,我们一点一下触点链路,这是不是有个。Rate limit by URL,那么下面呢,把它来进行一下流空来,此时就资源名称就是按URL,所谓的按URL就是走上面这个,其实两步的配置,主要是给大家证明两个细节,第一个。既可以用这个来配,也可以用这个来配,随便你只要资源名称唯一,第二个配了这个以后,配了流控规则在三天的控制台里面,如果违背了有布洛克汉德拉你。定义的就写用户你自己定义的,如果没写像我这样的,就用系统默认自带的,就这么两个知识点,好,同学们请看。现在我新增,那么现在这个URL,这我们已经有了流控规则下面。
09:00
一秒一下,一秒一下没事儿。多了以后大家请看是不是block的by flow limiting,那么回答我这个是不是我们系统自带默认的,那么它就不像我们上面这个是什么有444编码和服务不可用的中文提示,那么这个就是我们现在得到的结论,OK。那么结果就是用。会返回三自带的限流处理结果,那么前提是什么?这个配置并没有自己写block handle好,那么下面一完了以后正常的使用结束,讲完了,请大家想一下上面兜底方案面临的问题。我们讨论一下,大家可以思考。好,那么同学们。第一个。这个兜底方案。有没有跟我们业务代码。哦,呵。对不对,第二个,那这个没有写的,他就用系统默认自带的,那么我再加上一个,那是不是我如果以后要有这样的兜底的方案,是不是每一个方法要添加一个回答,我是不是又回到我们。
10:08
He how,朱哥那些问题,那么这些问题也就是我们前面讲过的。默认的没有体现我们自己的业务要求,那依照现有条件,我们自定义的处理方法要和业务代码耦合在一块,不直观。第三个每个业务方法都要添加一个兜底的,那么代码是不是要膨胀,我们是不是要避免膨胀,避免耦合,还是那样的一些东西好全局统一处理等等,那么这四个问题我们才真真正正的进入到了我们的resource的一些深入方法的讲解,那么下面我们要给大家介绍客户自定义限流的逻辑处理,解决那些膨胀和耦合的问题。
我来说两句