00:00
好,同学们,终于我们完成了服务降级和服务熔断。那接下来服务线流。几。不可能是一对吧,什么情况高级篇讲解阿里巴巴的三的时候,我们再说,因为啊呃。什么事要有个取舍和侧重?毕竟是红叉叉听懂,那么我们决定到后续阿里巴巴的时候限流,这个比它更好,那么我们就把时间花在更重要的知识上面。限流我们放在阿里巴巴那用三来进行讲解,可以这么讲啊,就是说呃。如果后续的工作中啊,你要是了解思想这些的话,其实这cloud里面。比较重要,必须要懂,但实际工作中我可以觉得呢,用sent来替代我们这些全部工作,后面我们会发现好,那不管怎么说,S那么优秀的服务,限流熔断框架,它的思想我们要有所了解。
01:00
你学完这个以后,你再去学,你会发现很简单,好吧,就如同你已经熟悉spring了,你再去学习spring。顺理成章的事,好,那么接下来我们最后要把historys的工作流程给大家呢,进行一下交流和创建。首先这整个his它在cloud里面做服务限流熔断这些的话,它是怎么做的,那官网上我们打开来。它的工作流程图,那么就是这个你点开,但是我好像我的浏览器出了点问题啊,同学们你们自己点开哈,没点开也无所谓,待会我们会讲他呢,就这九步。OK,那么大家请看构造一个history strict command和S。Obser observable command,那么这个我们就没讲,为什么,因为这两个几乎warm都差不多,我们一般现在是用这个注解标签用的多,所以说从侧重点选择,我就没有说这个了,我们就说了这个,那么它的基本上快快的过一遍,构造这个,执行这个command命令,看看缓存里面有没有熔断器,是否打开,再来看看线程池啊,或者队列啊,信号量是否被打满,然后。
02:13
这个呢行构造方法,这个呢执行状方法,就是我们常用的这个,然后呢,有一种返回,最后重新来看看熔断器是否放开融合状态了,得到返回最终完整的回应,好,那么这张图是它的官网工作流程图,我们有必要还是简单的要过一下同学们有个样貌,那么这张图啊。我哪来的就是点赞啊,这张图,那么他的官网图例和步骤,那么杨哥呢,都给大家呢,整理好了,你就是。一遍听不懂,后面都有笔记。不重要,不担心,别害怕。那么下面。来重点是这个啊,那么这个就是S的官网流程图啊。不要害怕,那么以后去大场了,这个架构图比这个更复杂,那么现在看的好的大的牛逼的东西多了,那么以后上战场的时候,去职场的时候,心里面就少发虚,那么怎么看呢?下面由杨哥带着大家过一下,首先先看看他的这个示例图,蓝色是调用路径,红色是返回的,OK。
03:23
VO和return。Observe的这些东东呢,这些是我们的一步步的步骤,这个是什么成功的完成,这个是叉叉是错误,那么he observe command method等等,好。第一步我们说过了,构造一个districts command。我们用这个有点。好吧,那。第一步,他的卧兄弟是这个,那么如果你选择这个,我们用的是这个方法,如果你选择这个,我们用的是这个方法,那么第二步。这两个里面你选,你看选上面这两个方法里面你选几个啊。
04:02
Choose one of选一个。然后开工,那么假设我们选这个以后,第一步我们决定是构造这个还是构造这个,我们选左边,第二步选好以后,我们开始蓝色的,沿着蓝色的路线走work,调用路径来,第三步,那么对照对照着官网是就是这个,那么。看看缓存里面有没有。大家。跟着杨哥走,这点还一点理论知识过一遍,这个图很快就完了,大家再咬咬牙。那么第三步。假设我们这个缓存功能,看看现在是否被启用,并且有缓存,并且还命中了,那么缓存结果将会立刻成功的回应,OK,将会以这样一个对象返回给前台,因为从缓存里面拿到后面就不用废话了。好,那么假设没有呢?第四步我们就要检查我们的段落器是否为打开状态,就是我们的保险丝是否跳闸。
05:03
如果断路器是打开的,Yes啊,那么抱歉,Districts不会执行命令,而是转到我们的for back,听懂了吧,所以说服务熔断跟服务降级,从它的官方架构图上面四到八这么说能跟上,如果断路器是关闭的,那么就是no健康的状态,我们过来。再检查是否有可用的资源来执行我们的命令,走到了我们的第五步,从四到五,那么第五步我们这儿有信号量线程12,那么看看他们又满了。如果。这些都已经被专用的线程车和请求队列或者信号量都已经被占满了,那么he这S它也不会往下走了,而是转到第八步for back右降级,因为比方说啊,我们前面我们不是后台打出来一些这个线程池嘛,其实它底层呢,就是线程池,我们原来在勾O4也讲过,默认他们开的线程池,默认的话是十个,现在给你处理啊,如果这打满了,那么这个时候的话呢,那么也会跑到第八步,好,那么到。
06:10
第六步,如果说挺好的,没满,那么过来构造方法或者是run方法,那么这个构造方法就分别对应着这两个啊,由于我们用的是这个,所以说我们呢。在第六步就是historys会根据我们编写的方法,比方说我们编写的history command来决定采用什么样的方法来请求依赖服务,那么如果是run这个方法就是我们常用的history command command会返回一个单一的结果或者是抛析,那假设是啊,你的用这个构造方法的话,那么它会返回这么一个。我们这对象来有多个结果。那么第六步完了以后,那么大家请看,继续来蓝色的调用到我们的。喜爱我们干嘛呢?S呢会将成功也好,失败的拒绝的超时这种信息统一汇报给我们的段路线。
07:05
而断路器就会维系着一组计数器来统计一些数据,会根据这些数据来决定是否再把这个断路器打开,就是我们那个服务熔断来对某个微服务来进行。熔断的操作,那么到第八步。假设这个调用哈。它执行失败的话,这就会将入for back,尝试一种回退的处理,来看看for back是否成功,那么这种情况下呢,我们就把这个操作就叫做什么服务降值,那么哪些情况下。我们回忆一下会引起我们的服务降级,按照这个图啊,首先第四步。处于断路器是打开的,那么这个时候会干到服务降级第五步,如果线程池满了,或者信号量等等队列这些满了,会干到服务降级第六步,如果说我们的history strict command run方法抛出异常的时候也会导致服务降级,其实说白了就是我们那三步,呃,In特A等于零对吧,我们的润方抛出异常,超时啊,宕机等等,我们最后第九步。
08:17
我们当然可以,我们这些命令哈。跑过来以后有没有执行失败,如果是yes跑到降级这,否则就这看看有没有超时,如果是超时了就跑到这儿,都没有顺利。红色的第九步districts命令执行成功之后,会将结果直接返回或是。哦,不,The的形式啊,返回给我们最终的处理界面和我们的核心逻辑程序,OK,那么大体带着大家过了一下,有兴趣了解的同学就可以按照我刚才杨哥讲的也是第一步到第九步123,那么你要有兴趣了解底层原理,翻译一下,一步一步的看看,那么会有一定的收获,好,那么这个步骤说明和historys的工作流程。
09:05
就给大家理论知识啊,总结到这儿。
我来说两句