00:00
好,同学们,那接下来我们呢就来说道说道如何来处理我们的降级,首先我们要进行服务降级,For back返回,给别人一个温馨友好的提示,并且要有一个兜底的方法,来先看看这个。OK,好,降级的配置,我们这儿用注解的方法替代编码。先看官网。他这儿用的是什么。继承historys command,它呢是用的类,但是呢,现在我们一般是用配置替代编码,所以说我们在这儿一样的思路。学习一个新的注解标签hes command,好,那么现在我们先从8001自身找问题,我们8001的时候,在这儿是不是有一个?业务时间比较长啊,三秒钟好吗?那现在呢,假设我把它改到。
01:02
更长一些,五秒,换句话说,三秒以内我们认为正常,假设现在这个逻辑需要五秒钟,我们认为这个方法会报错,那么我们就约定好三秒钟正常,超过三秒异常,三秒以内的,咱们打出正常的业务逻辑这句话,那超过三秒的呢,我们这儿是不是应该有一个兜底的方法呀?所以呢,我们的思路形成以后,我们8001先从自身找问题。来设置自身超时调用时间的峰值,峰值以内正常运行,超过了需要有兜底的方法处理,做服务降级,For,那再次强调我们前面理论知识的这句话。来。向调用方案返回一个符合预期的可处理的备选响应,For back。当然我们现在是不是801自己先调自己,我自己先自测,通过我才能对外提供服务,先保证我自己。
02:10
是OK的,是正常的,好,那接下来我们来一点点加固,先从8001再干到客户端八零,那么怎么玩呢?第一个主启动类。业务类上启动command。来。红色的是我们最新的配置,那么开高。首先我们在这儿需要有一个heres这么一个command的注解标签,再次强调啊,官网上它是用程序,我们是用触解来实现,那。怎么玩呢?最重要有一个东西叫for back method,意思就是说哥们,如果我现在出事了,谁替我兜底,那怎么出事?哪个方法出哪个方法出事,这个方法如果出事了,我们这儿需要有一个。
03:07
Handler这么一个方法,那我没见到啊,写那么这块方法头跟你保持一致,方法名字不一样,意思就是说哥们儿,你上面出了问题了。过来找我。我替你兜底,OK。好比你下面。OK。你就当上面,你考研失败了,薪水过少了,追妹子搞不定了,那么要有一个兜底的,来上硅谷找杨哥主治,钱包缩水,信心不足,学习不好,技术太差,不打针,不吃药,不动刀,纯天然疗法,保证易发入魂,一针见效,永不复发。OK,有个兜底的没问题吧,你们过来这儿。兄弟们继续啊,我们这超时啊,待会我们来演示,故意给他报错好,那什么意思呢?就比方说啊,Int a等于100OK一样的啊,那么在这块,那么你要返回一个什么呢?我们是不是要给人家返回一个温馨的友好提示啊,也一样。
04:15
过来这儿。线程池的名字是这个,那么在这块我们就不再是这个方法,我们是不是就是handle德拉,然后大家看耗时多少多少多少秒,这个呢就不要啦,然后我们在这儿给人家返回的话,OK就不是,哈哈,那么我们就改改表情包吧,待会看表情包是不是就能够知道我们到底进到了哪啊,那么这个是我们正常的业务逻辑方法,这个是我们的。上面抛一常了下或者超时,反正上面出事了,你给我找个兜底的兄弟,那么在这OK,好,那么问题是配了four back以后,还需要完成我们第一个案例来。
05:02
这个报异常以后如何处理呢?我们现在看一眼,希望做到的是一旦调用服务方法失败,抛出错误信息以后,会自动调用这个的标注好的for back方法这样类中的指定方法兜底的这一波没问题吧?那接下来干嘛呢?我们设定按照我们业务逻辑要求。在这块再加属性,那么command properties,然后在这块来,同学们请看是不是数组的属性多个中括号走起,那干嘛呢?在这个里面我们又要six property这么一个东东。内幕干嘛呢?来吧,这个里面请大家看这个是不是一个注解,那么这个里面回头我们会说好多东西,OK,待会我们看,我们先提前看一眼,我们在这儿,我们呢,就不再多废话,直接拷贝,那么这个的意思啊,给同学们拿过来。
06:06
它呢是这个线程的超时时间是三秒钟,这么说能跟上,换句话说,我们规定三秒钟以内就是正常的业务逻辑,但是现在严格写多少五秒钟,那么是不是超过了我们的峰值上限啊,那就是我们自己在这定义的设置8001自身调用超时时间峰值,这一波能跟上,我讲慢一点,第一次啊,咱们就把它学会,不要想着后面回去复习,那么意思就是说我们现在。第一个划定好我们的红线,三秒以内走正常的业务逻辑,超过三秒了我们出错,出错了是超时的错误,那么需要有一个兜底的方法,那么你要告诉我这个东东,第二,我们这五秒钟,你这二三秒钟100%出错,那么这个时候看看我们的这个服务降级能不能出现我们的温馨提示的方法,好,那么再来。
07:02
前面讲过,你新添一个注解,主启动类上面是不是需要有一个激活的方法,那么所以说一个是启用,一个是激活。那么回到我们的。8001还这货,那么下面呢,就要找到我们的主启动类这哥们。来,兄弟们,那么cit breaker,那么这个呢,是代表我们的什么回路的意思,OK,后面我们还会讲服务熔断的时候,他还会再次登场,这儿先混个眼熟O了,那么跑到这了,以后如果一切顺利,我们先来看看,先不说八零了,先说8001,你自身加固这一块O不OK,那么找到它我们马上启动,好,那么我先暂停一下录屏,同学们,我们终于重新启动。OK,那接下来就是我们设置了我们的峰值三秒钟,那么现在实际上我们业务逻辑要处理五秒钟。那么假设在这款。挂了超过三秒,会不会走到我们兜底这个方法打出这个窟呢?那么兄弟们过来吧,这块完成。
08:08
这块加固这块搁到这儿,我们选的是这个time out这个啊。那么local host。8001。我们选择这30间,那么大家请看啊,转圈。等了一定时间,不等了,大家请看是不是马上去我们这个哭的这个笑脸去了,这么说能跟上,换句话说,以后我们在工作当中,不管你在消费者还是什么我们的服务提供者,都可以做s command服务降级第一种就是超时的设置,这一步能跟上吧,好,峰值是三,三秒以内,我们等超过三秒了,我这儿发飙了,报错谁能处理我来处理,给你兜底兜底,就告诉你这一个友情提示,比方说系统繁忙,请稍后再试,这么说能跟上,那么比方说就这吧。
09:08
系统盘。请稍后再试,兄弟们,这一波没问题吧?系统繁忙或者运行报错。OK,请稍后再试,总之一句话,这个脸是不是哭了?那么这是第一个,第二个,请注意,我为什么要每次打这个线程池啊,大家请看heres timer,换句话说,现在我们是不是不再像以前这样,他用his stricts是单独的一个线程池给你做处理啊,那么这块起到了一定的隔离的效果,好,那么同学们,现在我们呢,完成以后我再跑它一次啊,重启完成了,那么如果不出意外,同学们请看这块是不是。处理的线程池,干活的是这个系统繁忙或者运行报错。
10:01
请稍后再试。那么。好,哎,运行报错怎么这个字没打出来啊,哎,可能是后面改的话,他是第一次啊。好,那么到时候再重启一下就OK了,那么接下来我们继续啊,如果说我现在干嘛呢,到这一步。再来试一下我们的他。上图故意制造两个异常,都是兜底方案,一个是时间,一个是什么运行异常,那么总之一句话,当前服务不可用了,我们看看兜底方案这一块还行不行?来,同学们,我们把这个。注掉,现在是12,那么在这块而言,我们也把它注掉,那么现在不好意思啊,跟超时没什么关系,一进来是不是就报错,那么现在我们一进来要是会报错的话,那么同学们我们在这块能不能处理呢?好,那么在这块。
11:02
耗费多少秒钟?那么这块我也先把它剃掉一下哈。好,那么这是零秒,那么等它重启一下。重启完成以后,那么刚才不是这两个字没。打出来嘛,那么这次呢,如果重启呢,就应该是OK,好,我们现在这儿干的事,上面这个是设定超时啊,然后还有个for back方法,那么相当于说程序运行异常了,超时了都要走走一个兜底的,那么好同学们,我们现在来看一眼,我们最终还是这个哈,我们在这。来,同学们请看,系统繁忙或者运行报错,报错这两个字出来了吧,稍后再试,那么大家请看,没问题吧,还是哭这个脸色。那么这儿我们可以得到我们的结论,就是上图的运行异常,上图的超时异常,只要是当前服务不可用了,我们就马上做服务降级兜底的方案都由它来进行处理,说穿了就是for back,后面跟着什么就是什么,那么上次我们就讲了运行异常和超时异常的控制和预防,OK,那么这个就是我们的服务的降级。
我来说两句