00:00
我相信入门级别的使用大家会了,你不要觉得简单啊,只是粘个标签,这个不算个什么事。还没说这个呢,还会跟他继续深入的讲解和使用Kris的熔断、限流、降级,这些思想要掌握。不要只是会配,我不希望大家只会拿着一个什么word文档,然后做操作手册,粘贴复制。工程师比方说学个in会安装,实业里面谁需要你去安装啊,你进去以后这些东西早就安装好了,学安装是最傻逼的,听懂了吧?那么很多同学呢?不要把操作当成原理,我们是工程师啊,不是农民工,要动脑子的。过来,下面开动脑子,我们现在的八零和8001搞定了,也配了我们的服务降级,那么思考一下,从代码这个角度和配置这个角度,看看我们现在有哪些问题。那同学们呢,大部分同学呢,回答的不错啊,看来我春节期间让你们复习的东西呢,也看的不错。第一个问题是不是发现我们的兜底的跟业务无关的,换句话说叫异常处理的方法跟我们的业务逻辑的方法是不是混在一块啊?这个时候是不是出现了代码的耦合度极高?
01:16
不爽吧,第二个,每个方法都要需要有个兜底的方法,每个方法都需要有个兜底的,那么这个时候是不是会导致代码膨胀。所以说一。导致代码膨胀二。业务逻辑的方法和处理异常服务降级的方法揉在一块不大爽吧?那么怎么避免,怎么解决又来了。所以说我们现在需要。每个业务方法对应一个兜底的方法代啊膨胀,我们就要避免膨胀,第二个每次都要加一个,有没有一些通用统一的呢?我们需要有统一的和自定义的分开,什么意思啊,比如说啊,你现在呢,非常苛刻,我要求每一个方法都要有一个服务降级来处理。
02:03
一对一。不是不可以,但这样的话,这种设计是不是一定很傻逼呀,那么你这个代码太膨胀了,这有100个方法,要有100个服务降级,那么这个时候我们能不能够统一的类似于有一个什么。Lo。全局的。For back呢,普通方法不需要精确打击的,不需要一对一配置的,那么通通由这个来搞定,比方说你有100个97个方法都可以走这个全局通用的,只有另外另外那三个是VIP的方法,那么走我们特殊定制的,那么这样是不是可以减轻我们的for服务降级处理的方法生成啊,好,那么我们就需要来看一下这个东东如何做走起,那么。接下来我们先解决第一个问题,每个方法都要配置一个膨代码膨胀的问题,我们讲过了代码膨胀该不该避免,一定要避免,那么接下来我们来看看怎么玩。
03:08
来在接口。玩一个新的属性,Default properties default for back,那啥意思呢?这货干的意思就是说我们在这每一个方法,这是不是粘了这么一个注解标签,叫for back,指定的意思就是。这个方法出事了,替我兜底的收拾烂摊子的是这个方法,OK,那我每个方法都要想配一个不爽,那么接下来我要减轻这些代码膨胀度,那么我们在最顶头抖一头的配一个全局通用的意思就是说。没有配置过这个for back的就找这个default,全局通用的,配置过的就找自己这个精确打击的听懂。
04:00
OK,好,那么同学们,我们搂他一眼。那么接下来。我们来跟刚才讲的一样,这是有个default,这是不是我把原来专门写了这么一个注掉了,只加那么一个标签头,只留着这个一个,没有特别指明,就用什么统一的能跟上好。好,那同学们,我们呢,讲完这个default property以后,再来看看我们现在的设计思想。说穿了,加这个的意思就是一对一,每个方法配置一个服务降级方法,技术上当然可以,实际上是什么OK,不多废话,因为。一对一。每个业务方法都要配一个降级方法,太坑爹。第二个一对多,除了个别重要核心的业务有专属的,其他普通的都可以通过这个来跳转到统一的处理页面,所以说通用的和独享的各自分开,避免代码膨胀,合理的减少代码量,好,那么同学们我们来配置一下这个属性。那么这个属性首先往。
05:05
头上一粘就OK,那接下来我们来粘个什么呢?就粘这个。来吧,下面呢,我们呢,就在我们的八零上面做吧,同学们,同学们请看啊。我们这儿写一个,下面是。全局fall back。好,同学们,很简单。就这么一个方法名字啊这句话。我就不挑了,OK,这是我们的第一步,那么第二步我们就把这个粘到我们的。类头上意思就是说我们现在有全局的定义好,引用好,那么第三步哈,如果你现在就近的原则,你这具体指明了,那么肯定是不会产生冲突,所以说我这第三步。把它。
06:00
驻点。但是我粘了这么一个标签,当然你不粘这个标签,那说明什么?没有服务降级,跟你相处的事儿。正确就是正确,异常就报异常,但是现在如果我们报了异常以后,我需要有个降级兜底的,我就用它,但是你没有指明for back,没有指定的,我们就要用这个default的,OK,逻辑上能说的明白吧?好,那么同学们老规矩,我们重启一下我们的八零,好,我先暂停一下录屏,同学们,我们重启完成,那么接下来我们就要来试试我们现在的这个。Default好不好使么?打开我们的I浏览器,现在啊,那么走到我们的consumer payment timeout,这个啊,还是这个,但是现在呢,我没有涉及到超时啊,我直接是写了个in特一时,因为一进来就报错,那么相当于说一进来报错,以前是找这个,那么现在没有了,是不是应该找我们的globe,说穿了,待会打出globe就代表配置正确,好同学们一回车。
07:03
O不OK,那所以说这样有三步这个。配置,第二个要有一个兜底的全局的for back,第三一个加这个标签,什么都没加,找全局的,加了for back就找属于自己特别定制的,这样是不是实现了我们的设计思想,最终是不是要完成通用的和独享的各自分开?OK好,那么同学们,我们这default property就给大家介绍到这。
我来说两句