00:00
就刚才呢,把这个执行过程说完了,下面给大家重点说这个herix熔断器或者断路器啊,它这里写到啊,Herix是一个供分布式系统使用,提供延迟和容错功能的保证,你复杂的分数系统在面临下就面临这种问题下,不可避免的失效时,仍具有能仍能有其弹性啊,说的很拗口啊,就这句话就是表述出他到底是干什么的。给大家说的通俗点啊,这里边有几个概念,我说各位是否知道啊,咱也解释一下,比方这句话你理解不了,咱们第一个概念。叫什么?分布式。这个词。什么叫分布式呢?给大家来解释一下啊,这个位置给各位我来画一下啊,就是说一下这个过程啊,什么叫分布式呢?其实我们现在项目咱是不是叫微服务架构啊,而咱们项目最终就要按照分布式方式进行项目部署,那什么叫分布式呢?大家看啊,咱目前有三个模块,一个叫做edu,一个叫oss,一个是不是叫vod啊,那这三个模块咱肯定要放到不同的服务器中。
01:14
那我来画一下啊,比如现在我有三个模块,这是第一个,这是第二个,这是第三个,或者说三个服务,然后第一个服务咱就是这个叫service。Edu。第二个服务我们叫这个service oss,第三个服务咱叫这个service vod啊,当然可能有更多服务,然后每个服务我们是在不同的服务器中部署啊,这个过程叫分布式,假如说第一个服务咱就部署到这个192.168.1.1,然后再用那个8001端口,就举个例子啊,然后第一个服我们这么部署。然后第二台服务咱们给它放到另一台机器上,就是1.2机器,然后让它占用8002端口,第三个服务咱放到这个1.3的机器上,让它占用这个803端口,所以大家注意啊,这三个部分因为是独立运行的,所以咱给它放到三台不同的电脑中,让它或者三台不同服务器中单独运行。
02:14
当然各位注意啊,这三个功能加一起是不是就能构成咱的在线教育这个项目,所以这个过程就叫分布式部署,说的简单点,你把项目中的不同的服务单独部署到不同的服务器上,然后这些加一起构成咱们一个完整项目,这就叫分布式部署。这各位给他知道啊,然后在分布式部署中呢,咱的熔断器就经常用在这个地方,这里写到啊,供分布式系统使用的,然后它干什么呢?说提供延迟和容错功能,保证你复杂系统中面临不可避免的失效时仍有其弹性,那这句话什么意思,就刚才说到的啊,比如我现在这个过程中,当我现在我用这个SEDU,我想去调用这个vod啊,咱这么来画啊,就调这vod,因为这两个是不同的机器,又是不同的服务,比如现在我想调用,那怎么做用咱说那个技术。
03:10
随人考里边的这个服务,发现不调用就是na code加fit可以做到啊,这可以实现,但是比如说啊,在调的过程中,假如我这个SVOD这服务突然出现了问题,就是它突然就是服务器宕机了。或者说服务器挂掉了。那这个时候呢,你通过EU再去访问,是不是肯定访不到,因为它服务器已经挂掉了,而现在咱们熔断器是干什么的,就是做这个过程,就是当你这里边,比如说我现在请求的时候,这服务器挂掉了,那我熔断器会执行,执行怎么做,让你当前这个请求就是不再能进行调用,就是它不会再去继续调用,因为它这个服务器已经挂掉了,这是一种容错处理,当这个服务器挂掉执行了,熔断机制会触发你再去调用,它就不让你调用。这个啊是它的第一种机制,另外还有第二种机制,给大家强调啊,这叫宕机的情况,然后第二种什么情况这么来画啊,我画到这个位置。
04:10
假如现在啊,我们还是去访问这个服务。但是反服务过程中呢,比如现在啊,这服务器并没有宕机,但是有一个问题。什么问题呢?比如现在啊,我这个vod的服务,它这个服务器啊,可能说运行目前比较慢,它这个时间很长,比如说现在它这个请求一共请求了五秒钟,还没有任何数据返回,那其实在我们SERVICE1丢中,它有一个默认的启用时间。超过了启用时间没有响应,它就直接报错了,所以咱们可以怎么做呢?让它时间可以启用的长一点,假如我们设置你启用时间在十秒以内,没有响应都叫正确,这叫做它的一个延迟处理,就这句话延迟吗?因为它默认时间是1000毫秒,如果超过1000毫秒,你这服务器没有响应,它就认为你这服务调用失败了,但我现在可以设置让它时间长一点,加入12成5000毫秒,那这个时候只要你不超过5000毫秒有数据返回,这个过程都叫正确。
05:13
这叫延迟的这种方式,这些用熔断器都可以做到。啊,就是延迟的一种处理,所以这个各位知道啊,熔断器就是这种机制,能保证咱们分数系统中就算你出现了问题,仍不能具有其弹性,就是有不能正常运行下去,而不会直接服务器就不能往下执行了,直接就报错了。这个啊,咱做一个说明,所以这个在我们实际的项目中,这种容错处理我们肯定会都要用到,因为它经常会有这种情况下。做这种不同复制调用啊,会有这种宕机的情况,或者说响应过慢的情况,那这些用熔断器都可以做到。啊,这是咱们说的这么一个最基本的一个描述啊,你把这个先知道,然后大家看啊,这张图上画的就是刚才我说这过程来看一下啊。
06:03
比如现在我这里边通过browser浏览器或者mobile手机去访问咱的服务,比如服务有abcde,那这个时候假如现在我在访问过程中,当某台服务挂掉了,那怎么做呢?这个叫服务bag,进行它的熔断处理,然后这里边这台服务器就从里边给它剔除掉,它就不能再供别的这个浏览器客户端访问,这个叫熔断一种机制,当你不能访问它,就断开连接,把它就剔除掉,这里边再去访问。做不到了啊,这是一种熔断的机制啊,所以各位把这个思路指导,这主要用于我们程序中那种容错的处理。这个啊,咱就说了一个概念上的介绍啊。大家把这个给他知道啊,就是我讲的。这个是两种比较常见的方式啊,当然有更多,这两种是最常见的,然后这个说完之后,下面咱看一下这个熔断器到底该怎么去用啊,我就在我们这功能中给大家具体来用一下,结合咱的场景我们来使用一下啊,大家看怎么做啊,咱先看一遍,然后再来实现。
07:07
首先第一步呢,咱就需要在里边加上依赖,这依赖咱之前加工,我把这些那个给它打开就可以了,这是第一步。一会儿咱打开啊,然后加上之后第二部分,你需要在你用熔断器的配置文件中,就是你的一丢中,因为咱要调用嘛,在里边用到熔断器,咱需要加上这么一段配置。这个配置。叫这个b he tricks are able等于true,这个值默认是false,加上true之后,它就表示开启了熔断机制,啊,这是第二句话,然后这还有一段配置。这配是什么意思呢?刚才也提到过啊,比如说现在它的请求默认是1000毫秒,你超过1000毫秒没有响应,它就直接超时了,但是现在我可以设置它的时间长点,假如设置成6000毫秒,在6000毫秒内没有响应它都是可以的,超6000才超时,设置它的默认响应时间,在配置文件中做配置。
08:06
就是开启熔断机制,还有里边这个时间设置啊,这是第二部分,然后第三个咱要具体怎么做呢?其实这些做法就是啊,咱看啊,我们刚才在调的过程中,咱是不是写个interface,那我们下面呢,在interface基础之上,需要对这个interface加个实现类,然后对应里边也是这个方法,就是当你出现了问题,它就会执行实现类中的一个方法。比如你看我写这个简单例子啊,在里边我加上这个实现内。哎,哪去了,就是。啊,就是这个实验类啊,然后在实验类中呢,当它出现了错误,那怎么做呢?就会去执行实现类中的这个方法,就是这个方法这里啊,这个是它的实验类,然后里边比如我这个删除视频失败了。他执行这个删除多使用失败了,执行它啊,这是一个就是容错机制,那在这个接口上需要加个配置,咱需要在这个里边加一个叫for back,指定你的时间类的class,当你出错,这里边的方法就会对应执行啊,所以这是我们写到的这么一个特点啊。
09:14
大家把这知道啊。然后这三小节啊,这是咱们比如做个测试啊。所以咱们把这个怎么用做一个介绍。
我来说两句