00:00
来,同学们。三班斧理论使他小桶钱咬牙坚持啊,不需。打困,不许放弃。我没说,下课继续跟我上。下面。熔断是什么?官网上刚才给大家做了一个理论的解释,没太大用,但是先要知道,起码我现在是不是有三种状态。关闭半开,好,那么不废话,直接从理论跳到我们的实操。来。这次呢,我们模拟呢,就尽量简单,少开一些微服务,不再用八零去调8001,那么先自测通过,我们注意新建是修改,修改带着historys断路器的。支付微服务提供者8001。找到我的payment service,那么兄弟们8001 OK,跑到这儿,Payment service。在这儿,这些都是前面用过的,OK。
01:03
肯定OK的,然后刚才讲过这个调用会超时的,那么这个是都比的方法,那么。接下来我,哎。看错了,我们从这开始向后面这讲什么鬼服务熔断,上面是什么服务副bank降级,这一波没问题吧,好那么节约时间,我们现在呢,直接装代码。这个里面也是一些普通的方法,重要是上面这一坨配置啊,那么听杨哥讲。我们直接转过来,不要害怕,不要害怕啊。先看完我讲了以后咱们再说。首先啊,你我先把它关掉,这样是不是就不害怕了好不好,那么同学们我们解释一下啊,现在。我们做了一个服务熔断的circuit breaker这么一个方法,这个方法就说明42行以后,杨哥进入到了新的章节,是不是服务熔断。
02:05
那么下面的意思就是一切都正常。但是假设我传一个负数的时候,我自己故意。抛一个不能为负数的运行时异常没问题吧,说穿了是不是就是出事了?那么根据我们前面讲的。出事了以后,是不是需要有一个兜底的方法明白,那么这个时候就告诉你。For,没问题吧,ID不能为负数啊,稍后再试啊,清不清楚啊,好,这个我相信只要你有服务。降级的。知识,那么你看到这儿应该没问题吧,这个是我们的主业务逻辑类出事了。由他来进行兜底。第一步,OK。第二步,那么说一下55这是什么鬼?大家看,CN点糊涂点,扩点U,什么simple u u ID这个东东等价于我们的UU id.random。
03:05
等价于我们的悠悠。id.random.to string这么说听懂,当然他把下划线也去掉了啊,那杨哥你用这个不行吗?可以啊,我是想带着大家复习并再次啊,给大家说一下一些新知识啊,那么杨哥你这什么鬼啊,别忘了。先看我们的8001啊。杨哥,这是不是添了我们的API没问题吧,我讲过这个API是不是一些公用的一些东西,NTT啊,甚至一些接口,甚至一些工具类放到这儿,全局通用的嘛,那么这个时候同学们请看。我在这儿弄了以后,我引入了一个什么东东,是不是叫糊涂沃5.1.0这个版本,还记不记得去年杨哥给大家串讲的时候。大场面试题第三季的时候,我是不给人家给大家介绍过糊涂工具包的使用啊,那么这是什么什么意思呢?再复习一下。
04:03
来,这是他官网主页,那么现在是5.1.3哈,无所谓,5.1.0也绝对够了,这是咱们中国人开发的,非常爽,那么现在呢,他的糊图呢,是这个O不开,那么糊图的意思,所以说现在是Java程序必须要掌握的,它干嘛呢?那么大家是不是要写各种什么日期,Date u,然后呢。HTP客户端各种转换配置文件日志啊,GDPC等等等等,那么现在二话不说打开,兄弟们要不要写时间?要不要写IO里要不要写工具类,比方说string相关的16进制,加密、解密、URL,泛行反射等等等等,你看非常爽,那么现在杨哥你干了一件什么事?我用那个唯一工具类ID是糊涂的,那么我用了这么一个简单的是么simple u ID,那么这一运行是不是就生成一个唯一流水号,并且是不带。
05:00
井号的听懂,所以说在这块我们呢。给大家呢,说了以后就明白这种东东通U工具类尽量的提到公用,是不是大家就可以少引入一下下包一次一次定义,处处使用,那么第二个知识点同学们这一波能不能跟上,那么这个只是一个API调用的工具,你不要以为懂这个就牛逼啊,这个没有任何太大的意义,只是调用不重要,重要的是上面的好,那么下面糊涂工具包啊,糊涂点CN,那么希望大家支持一下这个作者,我用下来以后感觉还非常棒,感谢。这几位。兄弟们的。支持和付出,那么所以说。同学们也希望哪一天你也出现这么一个动道,好吧,来,不多说了,我们继续学习。那么。来。这些懂了以后,下面就来看看我们的配置了,不要慌啊,来。这么一堆。
06:01
比起以前的难了吧,以前就配了个超时,现在配的是for back,这个不讲了,兜底的方法OK,那么下面一样的配置,这些四个分别是什么呢?那么同学们不要着急,第一个先说这四个是什么,第二个再说杨哥的学习方法和思路,你怎么知道要配这四个?那么下面。过了,这个叫。是否开启?断路器。这一波O不OK。那这个是叫什么呢?这个叫我们的请求次数。没问题吧?那这个叫什么呢?这个叫我们的时间窗口期。或者叫时间范围都可以。这个叫。失败率达到多少号?跳闸。兄弟们能理解。OK,好,那么先明白是什么,第二个。
07:04
你怎么知道要这么要?来,有一天离开杨哥了,你去哪找?关网,那么下面我们来说一下这个是什么意思,然后先解释清楚以后咱们再来看这些参数的意思。首先是否要用断路器出啊,要那么用你这个断路器,就是你们家的这个保险丝跳闸的话,它是不是也一定要达到的一定的峰值和流量啊,他的意思就是说假设。在。这个时间窗口期,比方说十秒钟。这个时间你十十次请求里面有60次都是失败的,那么这个断路器就要起作用,那么我们呢,将会让你不好使,这一波能跟上好,那刚才呢,跟同学们互动了一下哈,是有点懵逼,那么别着急,我说一下。这个意思呢,就是说在一个十秒钟的时间窗口期,我们呢,实时访问。
08:04
假设超过60%,失败率达到多少以后直接呢让你跳闸限电,不能用OK。好啊,别着急啊,同学们,待会我们会来演示啊,我们现在才做到这一步呢,待会测试一完成,你就会明白,你会深刻体会到。什么叫恢复调用链路?明白了吗?好,那么下面不要着急,同学们一步步来啊,那么下面的问题就是你怎么知道要派这些参数啊,还有这些参数你哪来的?你怎么知道这些这些意思啊?那么兄弟们,首先啊,我们。官网上找到。来。他说,如果一个断路器打开和关闭的整个发生过程是按照以下这五步。第一个。那么是不是看我们的请求值这一波能跟上,他的意思就是请求次数有没有达到我们的一定的。
09:02
这个峰值次数第二个。错误百分比达到了多少,那么这假设我这配置的啊,兄弟们是不是十次里面。有60%就是60以上失败了,那么兄弟们干嘛?Then,这个sit break卡保险将会改变状态,From closed to open,一般我们正常情况下的保险丝肯定应该是关闭to open是不是跳闸了?跳闸就是你们家电器都不能用了,断电了,这一波能跟上第四步。当它open了,那么在一定的这么一个情况下,短期断路了,就是相当于说只要是open了,那么对所有的这些电器,所有的这些请求是不是短期以内都无法正常使用了,那么接下来伴随着我们的一个时间窗口期以内,那么下一个请求,那么我们尝试着是不是可以先让他通过一下,这个就是所谓的半开状态,如果这个请求还是不行,那么说明还没恢复,那么这个断路器还是。
10:07
To open这个状态,第三步的这个open说明还是不能要,那么在这个时间窗口期,如果这个请求,哎,放过去这个可以了,那说明可能服务已经恢复了,那么这个时候我们将把它从close变成是吗?把它转换成close了,那么又恢复到我们的第一步循环反复,这么说能跟上好,那么这是官网上的流程和步骤,我们这派完了以后,意思呢,就是说我们开启登录器,我们在设定了一个时间范围以内,那么个请求次数啊,失败率达到多少以后就跳闸不能用,那么这些你又是哪来的呢?那么兄弟们这是不是有个。Stricts command,那么这我们呢,找一个stricts command,然后这有一个类叫property。那么来兄弟们打开它look,这是个抽象内记载着我们的command property的全部的一些属性,那么包括啊,前面杨哥你怎么知道有什么的,这个以毫秒级别的时间超时啊,那么也是这些属性默认是多长时间?
11:12
是不是就是一秒钟这么说听到,那么哪些地方用到了,那么大家请看这个是它,这些就是它的什么默认值啊,那么来。This,这个get property你配在上面了,是不是就有点类似于我们spring里面的依赖注入,注入进去,你要没配人家就给你准备了一个什么默认值,这么说清楚啊,那么大家请看这个参数,我就是从这拷贝过来的,明白了吗?好,那么接下来。我们呢,这讲了为什么配这个参数,以及我们对应的糊图工具包。这一节比较重要,我们先。暂停一下,同学们消化一下好吧,那么这节课先给大家说到这儿。
我来说两句