00:00
好,同学们,我们继续,那这一讲,我们就要把上面兜底方案面临的这些问题,这四个痛点统计的呢解决一下,总之一句话就是体现我们自己的业务要求,不要耦合,避免代码膨胀和全局统一的处理方法,那么接下来我们就要给大家讲一下客户自定义的限流处理逻辑,而且要跟我们的代码。业务代码解耦好,那么同学们,那接下来我们创建一个customer block handle类,用于自定义的处理限流业务逻辑,然后自定义的处理限流逻辑类的话呢,是叫这么一个类明白,然后的话呢,在这个类里面。统一的处理,我们需要公有的跳转页面,先流提示,返回服务降级的说明等等,然后由方法来调用好,那么整体业务逻辑我们最终添加进我们的CTRL了。
01:01
什么意思呢,我们先关闭啊。现在同学们,我们这呢,是不是待会要写一个customer block handler这么一个处理类,因为现在是不是每一次都跟我们耦合,那么来吧,我们这儿呢,先写写哪个都可以啊,我们就到ctrler吧,那么这个ctrler我们写什么呢?就叫。这么一个吧。好,我们就叫customer block handler构成了吧,那么下面呢,这个时候呢,我们呢,也叫customer block handler OK,那这个时候我们这个方法也叫这个下面如果说是成功了,就是200,那么这个是按。什么呢?客户自定义。呃,那这我们就传一个003吧,也无所谓啊,假设这块成功了,那关键是这么一个问题了,兄弟们,我这个block。
02:07
Handler怎么处理?所以呢,就要回到我们现在大纲上的这句话,创建一个customer block handler类,用于自定义的限流处理逻辑,并且还要跟主业务分开。那么我们呢,需要在我们的工程里面,在这儿下面建一个my handler,单独有这么一个类。好,那么同学们。这这一块走起。我们呢,跑到我们的这个下面,我们新建一个类叫my handler。就叫这么一个类,注意那么这个类。现在就要来进行我们的编写。第一个public必须是static啊,这没得商量,那么我们返回的跟这个方法投的也是一样,他返回什么,我们也返回什么,然后呢,我们叫handle德拉。
03:07
Exception OK,然后呢,Block exception,然后我们的exception。好,这是我们的结果,那么结果的话和这边一回事啊过来,但是呢,这个比方说我们统一处理,我们就是四个四好吧,那么按客户自定义的,那么。Global。OK,那么全局的是来自于这么一个方法,同学们在这块没有任何问题吧,那么这边如果说是它出了一个异常,我们这块就什么都不传递了,这是一个方法,相当于说初步是不是把我们的这个方法相当于拿出来单独写在另外一个类,好,别着急。
04:02
我这儿写个二。明白按客户自定义,那么这个是什么,我们的一号。这个是我们的二号,听懂了吧,那么好在这块定义完成以后,那么好戏来了,相当于说我们在这个block里面,我们可以根据我们不同的异常,分门别类的选是一号方法响应还是二号方法响应,那如何配置呢?那么同学们其方法像这样。那么在这儿就要来了,就要一个block handle拉,Class,那哪个类替你撑腰,那么这个类就是我们刚才的这个第二。Class,听懂了吧?那么这个类里面的又是哪一个,类似于这样的一个block handle替你解决,那么这个时候,比如说我们选择的就是我们的二号方法,那么同学们。
05:00
请看一下,那么block handle德拉,那么这个时候我们把方法名写上去,就是我们的二号方法,那么代码过长,我们甩过来,请同学们现在我暂停一下录屏,请同学们消化一下,都能跟上吧,那换句话说,待会我们对它来进行做限流对不对?假设QPS超过一,那么超过一了以后,就应该违背了限流规则,就应该有一个限流规则的来给我们兜底,那么是哪个大哥照你这个大哥里面的哪个小弟具体来帮你处理,那么如果一切顺利,待会我们的QPS超过一了以后,我们是不是就是这个类里面的二号方法来找我们进行处理和修正我们的业务啊?好,那么同学们,我们来看看这块东东我们是否能够如愿以偿。好,我们先启动我们的8401,我先暂停录屏,同学们成功启动,那么这个上面第一个啊,资源名称这个呢,是按URL。
06:00
这个呢是按客户自定义,那么我们呢,开始进行我们的测试啊,我们调用微服务,先调用一次啊,因为这个名字比较长哈,我就提前写好,那么来同学们,如果我这一反问大家请看现在是不是按客户自定义,我们200是代表成功的出来了,那如果说一切顺利,我们在这就可以刷的出来我们的。触点链路这就刷的出来,那么这个是按URL限流,这个是按增的resource资源名称限流,我们就选在这,那么同学们请看,如果单机值是一,那么这个QPS是一,我们新增好。一秒一下好说,一秒一下好说,那么接接下来大家请看。点的多了,马上翻到4444,请看是不是按客户自定义的全局的处理几号方法,是不是二号方法给我们兜底了,那么这样的话,兄弟们,我们是不是就完成了我们的业务跟代码耦合度就结耦,而且也避免了代码膨胀,最多是不是就加一个这么一个3RESOURCE的注解呀,说穿了就是告诉你。
07:03
限流的名字啊,是用这个去生成到控制台里面去配,出事了哪个方法里面的,哪个类里面的具体的哪个方法替我兜底,那么弟兄们不用我多废话,这改成一啊,是不是就是一号方法替大家兜底啊,这么说能跟上好,那么这一块我就。不再尝试,那么测试以后我们自定义就出来了,那么进一步说明,那么请大家看,详细的给大家做了这么一个整理,红色对红色是哪个类,蓝色就是对这个。处理类里面的哪个方法来给我们指定,我们公有类里面具体哪个方法来落地实现好,那么同学们,这个就是我们的客户自定义限流处理的逻辑和。
我来说两句