00:00
好,同学们,那么前面快快的给大家过了一下理论,保证大家面试的时候能说点东西,那么接下来。降级、熔断、限流,口说无凭,我们要进入案例编码配置阶段。那么在。开始之前,我要求带着大家最后再过一次这段话,我们就开始编码。它主要是占的是延迟和容错的开源库。那么。依赖不可避免的会电容失败,为了防止这种连坐集体影响的情况下,不要导致整体服务失败,避免机电故障,那么所以说我们提出了降级的概念,增加系统的弹性,那么第二种服务断路器,它本身是一种什么装置啊,开关装置啊,就是家里面的保险丝啊。如果故障了以后,我们通过断路器的故障监控,那么相当于说保险丝呢,就是跳闸线电,家里面就没电了,安全了不会导致火灾,像调用方案要返回一个符合预期的可处理的备选响应。如果。
01:06
有for back最好,降级了系统不会卡死,否则长时间的等待或者抛出调用无法处理的异常,那么这样的话我们的程序不安全,保证了服务调用方的线程就不会被长时间的不必要的占用,这句话重要啊,不会被长时间不必要的占用,待会我们会演示啊,从而避免在分布系统中扮演乃至雪崩。好,那么理论。再过了一遍,上战场多少那。兄弟们都明白杨哥的风格,一般99加的是最难的啊,兄弟们不怕,有我呢,不要害怕,不要害怕啊。学不死学不死是吧,由我呢,那么接下来我们呢,开始开高。第一个先构建一下我们的平台,那么之前我们也演示过rib open以前的,那么发给代代码呢,发给get up上面,大家在我的账号下面自己去,自己去for,去关联,那么我尽量一个知识加到一个项目里面,所以说以前的不大动了,我们下面新建,那么OK,新建的话呢,我们现在先把7001恢复一下,因为我每次启动70170280018002805个微服务太浪费时间,所以说我们现在恢复成单机版,先构建我们的平台,那么现在呢,我把7001的集群呢。
02:34
住掉了,玩自己,说穿了,现在呢,我们就是7002,大家请看这个Dis repair,这没有7002了,没有相互手腕了,我就是最简单的一个启动,OK,那么先具备了服务注册中心,7001,那么第二个我们开始构建,那么构建一个什么呢?先构建我们的带着history stricts熔断框架的8001,那么好老规矩我们又来新建扩张我们的工程,好,先关闭来新建,咱们选我们的版本号,下一步好,那么再次强调啊,啰嗦一句,你用这个,用这个都OK,冯阳老师呢是喜雷凤阳老师,雷神呢喜欢用这个,杨哥呢喜欢用这个都可以哈,那么看你了,那么过来在这我们是带熔断hes框架的PAYMENT8001,那么下一步,那么在这一块OK,那么finish上来,同学们老规矩建了组件mode,那们下一步是不是我们的po沫文件,那么直接粘贴,没什么新的,主要这次引入了netfax的X熔断限流的这个GV坐标,引入我们新的架包,OK,好,这是我们的。
03:52
第二步,那么第三步带熔断的,那么是不是继续是要完成我们的application?
04:02
要么那么自然而然端口号8001,然后我们要告诉他,我们注册进我们的有瑞卡服务器里面,那么来我们这儿也是8001,我们现在微服务名称跟以前差不多,但是就多了一个熔断的heres这么一个单词啊,人们。集群我给它关掉,那么你要用集群就开这个,你不想用,我们现在少起一个服务,节约时间7001,那么就玩这个好,那么这个是我们的第三步,那么主启动类,那不废话,我们呢直接。Com点艾特硅谷点spring。Cloud点拍。问他。History stricts may 8001,那么代表的是我们的这个his支付的带着熔断的,OK,这个都明白,那么接下来,那么来spring put application来他要注册进有瑞卡,那么在这块弄进来,那么同学们我们直接过来,这就是一个main函数的入口,没有什么太多好说的,好那么接下来啊,我们呢,要学习我们业务类,那么service和controltrl了,那么这我们直接节约时间,我就不再写这个接口,那么这那么service点二,那么第一个。
05:27
就是我们的payment service啊,直接是累了啊,正常情况下是不是要建一个接口,然后再写音跑我们这些呢?呃,就节约时间哈,那么来重点弄到这么老规矩这块,是不是首先先写一个service,然后同学们,那么接下来我们先写一个。正常OK的方法,再写一个有可能会导致异常的方法,听懂了吗?好,那么接下来我们这儿返回string,那么payment,那么呃,叫in for吧,那么这一块就是OK,兄弟们,这一波没问题吧,那么。
06:06
这个ID好,那我要干些什么呢?Return,你们注意。Hes的框架其实是用的处理呢,是他K里面的线程。线程池,那么这块,那么我们的线程池你先不要管啊,那么看着杨哥最后写完就行,那么在这块我们相当于说来调它。我们呢,你调的是哪个方法呀,Payment。就这么一个方法,这一波同学们没问题吧,隔开一点啊,那么。这块我们的ID也隔开一点,加上我们的ID这一波没问题吧,那么。来同学们,再加上这个是什么意思呢?如果说是代表我,对了。我就打个笑脸没问题吧,这句话很简单啊,永远不会报错,就是点一下就返回我们传过来的ID,当前处理的线程池啊,这个表情包,哈哈是代表正确,OK,那么这一波,那么也就是我们的正常访问一切。
07:08
OK的。那么这个就是我们的正常访问。肯定OK的方法,这波不废话吧,好,那么这是我们的第一个方法,那么第二个方法呢,我们呢,直接呢,也是跟上面差不多啊,我就节约时间拷贝,但是这个呢,杨哥呢,给你干一个time out模拟会出错,这么说能跟上,因为我们前面讲过啊,那么哪些情况下会给你干了出事。那么。来。异常超时四个里面任何一个就会导致降级,都一样听懂,那么待会你异常了不起,就是特A减十除以零,听懂了吧,都可以啊,那么我们故意写一个会报错的方法,那么一样的套路,但是这儿那么同学们。
08:04
我们这儿睡三秒钟。兄弟们,OK吧,那么这超时了以后是不是容易报超时的错误,但是呢,这一块就相当于我们刚才所说这个程序,它自身它没有错,它就是需要运行三秒钟,跟上面一样也是打出来,但是这块呢,我们呢,把这个名字啊改了,那么省得啊,这块呢。大家看不清楚,那么这个是OK的,这个是timeout的,那么这ID,那么这块我们的干嘛。跑到这儿,那么再来,耗时。还有13秒钟。OK吧,那么这波,那么同学们,我们呢,可以来进行一下后续的处理好。或者干脆这样吧。那么这个。Time number等于三啊,因为到后面可能我会改的话呢,它不见得这这块就是三秒钟啊耗时。
09:08
那。在这time number,那么这块我们就写一个单位,那么同学们就知道。秒OK吧,那么这个呢,就是我们的一个什么service方法。好了,那么接下来我们回到我们这儿,是不是我们的ctrler?那么在这儿。Payment control了。好,那么老规矩,Rest controller,老规矩,Ser。这个好,那么是不是我们的CTRL要调我们的service啊,那么一样的。这一块是不是我们的这个。这个OK吧,那么。Resource来,那么这块就是对外暴露出我们的rest服务接口。那么private string。
10:06
Server port,我们这个端口号,那么value。熟悉的。同学们。过来这一块是不是s port这一波OK吧,那么注意这个value一定是这个啊,不要引错了,好,那么相当于说返回去我们的端口来来那么public,那么也就是前面的这些方法,我呢直接呢也就写少一点啊,那么同学们,那么这。那么这块ID。来get mapping,那么在这块的话呢,我们直接对外暴露的就是。拍卖他。Heres,那么这块是OK的,但是这块我们要取一个ID,同学们没问题吧,那么string。
11:04
那么在这块,那么是不是payment service?点2PAYMENT的音符,OK,把我们这个ID传过来,兄弟们没问题吧,那么在这款log音符,那么我们这。Result out,那么大家请看我们的result out这一波打出来,那么前台后台我们都给大家看到,好,这是我们的第一个方法,那么第二个方法,这个就是这个是正常的,听懂了吧,那么这个就需要需要业务处理逻辑,可能会超时的,那么这个需要三秒钟,那么在这块呢,就不是OK了,那么是不是我们拍out,其他都一样好吗?那么在这块我们呢?一样的逻辑,还是这么一个情况,同学们都没有任何问题吧,到这一步很简单的小程序啊,那么这块呢,你呢,杨哥呢,是带着你写,你呢,到后面你想写你就写,还是练练不想写,还是那句话,只要你动手上岸,你要给我装着成功好,那么接下来我们测试启动单机的7001,启动不R001,然后我们访问。
12:11
那么访问就很简单了,成功的方法和每次调用耗费五秒钟的,或者刚才我设置的是三秒钟的,这么说能跟上好,那么下面呢,这样你改成五就行,听懂都无所谓好,那么这一块完成以后,我们就要来看看我们的带he strict熔断框架的8001能不能成功启动好,那么同学们我暂停一下录屏,等它启动,同学们我们继续。那么现在我们的微服很简单,7001和带熔断。History框架的8001PAYMENT,那么现在我们第一个检查一下有没有注册成功,那么大家请看我们这个微服务现在是不是带熔断的8001,没问题了吧?那么接下来我们就来看看我们自己所写的。这两个方法,这个和这个是否能够成功的反问,再次强调啊,现在程序没有任何错误,这个是。
13:07
很快就返回了,这个是故意要停留三秒钟模拟,它是一个复杂的业务流程,需要处理三秒钟,这么说能跟上好,那么下面每次调用成功的方法,那么同学们搂一眼,这个时候请大家看线程池的名字,这个payment OK,哈哈,笑脸出来了吧,31这个,那么再来看。下面我们直接。过来,这个呢,需要耗费三秒钟,那么转个圈圈,但是也能够正常访问前台后台都没有报错,那么同学们请搂一眼,那么701没事,那么8001,同学们请看后台是不是也打出来了。Time out的OK的都有清楚啊,那么所以说我们现在这个程序没有任何bug,没有任何异常,只不过这块就返回的慢一点,你就把它模拟是一个复杂的业务逻辑程序,需要花费三秒钟,但是现在两个都能正常访问,刷刷刷刷刷,那么兄弟们出来了,这个我点那么转圈圈。
14:08
慢一点,但是也能出来,但是这个你告诉我大家请看闪一下就出来,是不是很健康,那么所以说现在就是在我们的这个8001下面有两个方法。这一波OK,那么好,上述这个Mo的均是OK,那么接下来以上述为根基,我们要从正确,那么现在是不是正确没出事了对不对,然后呢,到错误开始出异常开始给你惹事了,然后我们不能直巴楞登的报告错误的页面给用户要开启我们的服务,降级熔断等等,最后再慢慢的恢复,那么以此为根基,给大家演示我们的ris断路器功能,好,那么这一讲就先到这。
我来说两句