00:01
好,工作原理我们说过了,那么下边就要说这个源码。我就要进行源码分析了啊呃,源码分析其实首先我们要考虑的啊是什么,就是开始的问题。诶,大家。我们打开这个图啊,看着这个图看的清晰一些,哎。开始从哪开始啊,大家看从starter。大家如果读过源码啊,大家应该知道。最重要的特征是什么?自动配置,而你这个自动配置。怎么样完成的?怎么样把它配进去的这个。我们从standard下手来分析啊,呃,这是我们对于spring boot spring cloud这种源码阅读它的。
01:01
就你找不到下手点的时候,从哪找,就是从这开始,所以我们下边就来。就就从这儿找。把这个关了啊。大家看。加这个spring cloud。呃,阿里巴巴sent啊,我们就找他。呃,这是阿里巴巴。这个cloud是吧,阿里巴巴cloud。然后。Spring cloud spring cloud,诶就这个阿里巴巴。是吧,我们找到他。
02:00
然后是不是找这个factories。对吧,这这东西轻车熟路啊。我们原来都是这样读的,然后这里边找到这各种什么自动配置类。那在这些里边你要找谁,那这个你就得猜了,根据你自己你的经验来猜是谁,那我这里边猜的就是他sent。Auto confusion。当然这个猜的一下就猜中了啊,我打他。打开以后。打开它以后,我们看这里边有什么东西啊。嗯,这里边儿有什么呢。诶。大家看。我们居然有这样一个东西。叫。Sentinel resource aspect。Resource,大家注意,这是什么?Al on missing病,就我们容器里边啊,当前容器里边如果没有这个病,哪个病呢?Resource。
03:13
这不是我们的J里边那个切面吗?是吧,啊,它是L方式实现的啊,啊这个切面。那我们现在就跟他。跟你来。然后。注意啊,这个里边现在没法添加,往里面加注释,所以我现在就转了啊,转地方了,转到哪了。转到我们源码里边了。讲完这里边了。大家看就这个对吧。这一看。就是。
04:04
Us。前面对吧,这这个应该很熟悉是不是。紧接着你看这个这是什么,这不是很熟悉吗?是不是指定我们的切入点呢。指定。是什么?为注解呀。是不是我们注解什么注解resource。收钱。也就是说,这就和我们这儿的东西连一块儿了。我们指定。资源。指定资源就不这个。
05:00
Resource是不是和它和这个注解就连一块了呀?OK。是指定这个数解了是吧,然后呢,要。这什么东西啊?Around。熟悉吧,这是不是就是我我们我们在spring里面学的啊,这是最基本的东西。这是不是?指定。吃。这个东西是什么啊,这个这个此此方法吧,啊此为。环绕通知吧,Around。诶。哦,明白了。啊。Around。Advice。对吧。这环绕通知,那黄绕通知里边有什么东西啊,是不是有这个东西。
06:08
因为这个是不是可以完成我们目标方法的调用,我们找吧。你看。是不是PP点。这是。呃,调用。目标方法。就我们这个是做,呃,他建议他,他不是做增强的吗?这样模方法在模方之前,诶大家看到了没有,我们熟悉的代码找到了。那就我们自己写的这个,你看。我们自己写的这个。是不是这个。出来了吧。对不对。诶,但是有一个问题啊,这个有,但是前面是不是没有。
07:03
没有创建contest呀。是不是这是不是指定名称的常态,在这里边没有指定啊,那没有指定,哎,那我们看一下,没有的话它就怎么了。你看我们这儿写着呢啊。如果代码中没有指定contest,则会创建一个为。Sental default contest,默认contest,我们没有指令,没有指令它就会创建这样一个东西,所以我们要跟这个代码大家看啊,这实际上。就我们的。是不是要?要要要。植入的。啊。这个。增强的。功能是不是就是这个东西,我们要植入的,要增强的功能是不是在这儿呢?我们现在就要跟他了。注意这个,这这是什么resource name啊,就我们的资源名称。
08:05
资源名称,这资源名称来自于哪儿?注解的value。资源名称啊呃,我们我们注解来自于我们注解的value,注解value。那不就是他吗,是不是,这这没啥可说的,所以这我们资源名称啊,我们来。啊,资源名称,然后开走。在这里边啊,需要我们大家,呃,注意一个值。注意。1234第四个。参数值为。注意这个参数值它是一啊,第四个参数值是一。啊,这这个我们要用它啊,这个要用的我们继续跟进来。给你来到这儿。这第四个12344是不是这个count,这count是干嘛的。
09:02
也就这样看啊。给大家说一下。Can。参数。表示当前请求。啊。可。呃,可以,呃。增加。呃,多少个?技术。什么意思?比如说我们统计。是吧,就你一个请求。我那个QPS上我增加几,那有哥们说不是增加一吗?那你注意啊,你应该是增加一,一般是增加一,但你可以让他。一个顶三对不对,你可以让它一个顶三啊,所以刚才我们看到默认值是什么,就是一就你一个。
10:00
请求过来了,那就QPS就增加一,或者你访问数量就增加一。默认就是这个一是吧。当然你可以指定啊,这个是可以指定的啊,你知道看的参数,另外再需要注意。12345。五个参数。这也是我们后边要用到的啊,第五个参数是false。跟进来,跟进来以后大家看在这这是什么,这就我们的资源,这资源名称,资源的类型啊,In或者out,这个我们不用现在不用管它啊。啊,这这这然后。这是。呃,将。呃,信息封装为。
11:00
嗯。A的。资源。对象。这就是这个资源对象resource rapper啊,Resource rapper资源对象这封了它,因为我们见到它就知道这就是我们的资源。那么这里边儿有这样一个参数。啊,这个参数表示什么意思呢?啊,它表示啊。刚才不是说了吗?这个参数值是啊。你看叫entry with。A prior。Priority什么意思啊,优先优先级。这我们是具有具有优先级的这种操作entry我们说了,这是我们把它理解成操作对象嘛,具有优先级的操作对象返回这个ENT。就他返回啊。返回一个资源操作。
12:04
对吧。那现在呢,这个是一个什么entry呢?什么操作对象呢,具有优先级的,具有优先级,这个这个具有优先级,那是什么意思呢。那就是说啊,呃,如果我们这个值。是false。当然,现在它的值就是false,表示什么?表示当今访问啊,呃,就是就是。不需要。进行这个优先级等待。如果他是处。表示,当前这个访问你必须得等待。等待一定的时间以后,你才能通过等待多长时间?这个是需要根据你的优先级计算的。而我们现在这个是墨子,所以不需要。Three。
13:00
这个啊。这个。呃。若为。处,我们先说处吧。呃,入处。则表示当前访问必须等待。呃。等待。这个时间根据。优先。及计算。出的。时间。才。中国。嗯。为false。嗯。请求。当前请求。无需。那不用等,直接是货,那我们现在这个不用等,对不对,这是不用等的啊。
14:02
好。给你了。那么到这儿啊,这个方法就需要我们详细的要分析了,这个是个很重要的方法啊,这是很重要的方法,不过大家需要注意啊,这里边有几个值,Cant是不是一呀,它是。Boss。啊。默认值为一。默认值。喂。是吧,啊,这这这是我们的这个资源,这是我们的资源啊,资源实力。对吧,这是我们的资源实力。其他的不用管,这这是把把前面那一堆参数啊给他,呃,给给给它封装到这样一个数组里边了,是吧,可变参数组里边了啊,这就不用管它了。
15:05
先说到这儿。
我来说两句