00:00
接下来我们来整合center,我们参照文档,文档这一块呢,专门有一个主流框架的适配来点进来,在主流框架适配里边,它编写了各种版本的整合操作,那我们现在呢,主要是整合springbo spring cloud来点这个,包括如果我们使用的是double,谷歌的GRPC什么之类的都可以来进行整合适配,好,我们来点进来,如果我们想要使用cloud来整合S,那现在呢,可以直接使用s cloud这个start,有这个场景启动器来点进来,那这一块的文档呢,就说的非常清楚了。我们这个sna这个介绍我们就不看了,如何使用,我们现在呢,只需要来引入这么一个start,叫spring cloud start,阿里巴巴centna,好,我把这个引入进来,那鉴于我们这个全系统后来都要做整个保护,所以我们就直接在com包里边,我们来引入,Com包里边我们引了阿里巴巴的nacos之类的,那么这个有阿里巴巴的整个负依赖管理,那么现在再来引入S,我们把这个复制过来。好,我们现在第一步引入了这个S,第二个它编写了一个例子,这个例思呢其实就是一个spring boot的程序,然后有一个service,他给service上呢写了一个注解叫sental resource,意思呢,这是一个受保护的资源,起了一个资源名,然后接下来我们就有一个请求去来调用这个资源了,那我们这个资源呢,就可以受到保护了,所以他说我们这个注解呢,就是来标识我们这个资源是否被限流降级,也就是是被我们要进行保护的,如果被我们进行保护,那么接下来要做的事情就是来定义这。
01:35
一些保护规则,各种限流降级规则就行了,而且我们之前看文档呢,我们也知道那些在资源的定义方式,注解呢是一种方式,另外一种呢,就是spring boot里边的所有请求,我们的S呢,默认呢,它都已经适配好了,就只要是请求我们都给你默认,就能进行一个规则的设置,也就是默认就是一个受保护的资源,所以我们现在第一步做完了以后,第二步我们不想做也可以不做了,接下来我们来看第三步,那么这块资源都准备好了以后,包括它也支持small boot最新的web flex这种编程,那现在只需要在S的控制台里边来看整个效果就行了,控制台呢,想要看我们就来从瑞页面来进行下载,我们现在来下载我们这个,现在我们要看一下我们引入的这个sentel现在是哪个版本,那么就来参照我们这一块引入的炸包来搜索一下sentel sentel我们来看一下下边主要核心,这是163,所以我们最好呢。
02:35
下控制台来找1163,那这儿呢有一个163,你接下来就进行下载就行了,点击这个炸包,那由于可能网络的一些原因,大家可能下载不过来,那就直接用我给大家的这个炸包就行了,把这个炸包呢,我们一会儿也放到我们的这个软件里边,我们就放到这儿,以前呢有这个西塔,那接下来整个sna我们也放在这儿,我给大家发布的时候呢,多下上几个版本,好我们来看一下这个炸包先下载完了,下载完我们接下来就直接使用。
03:06
它呢是一个springbot的项目,我们直接Java杠炸就可以启动起来,把这个关掉,那现在呢,这个炸包下载过来,来打开文件夹中显示,把这个炸包来CTRLC复制过来。来到我们的鼓励商城,我们放到我们自己的这个软件里边,孙那么想要使用孙的控制台CMD来直接进来使用Java杠炸的方式来启动就行了,Java杠炸那现在有一个S的3SHB这一块提示我们这个应用呢启动失败,说tomcat在8080端口没办法启动,说明这个8080端口呢,这个配置的有问题,我们可以去来监听别的端口,那说明8080就被占用了,说们在这儿启动的时候呢,那就使用上另外一个没占用的端口,比如这个Java杠炸那么深的呢。我们写杠杠serve,点一个port,等于我们就叫8333,好,那现在这一块提示我们这个tomcat started啊8333,那我们这个呢,就启动起来了,我先来看我们森特诺的控制台,我们访问我们本机的8333。
04:12
8333回车来到我们这个sent控制台,这个控制台呢,默认的用户名和密码都叫sentel,那现在登录控制台以后呢,我们就可以对它来做整个流量控制,那么现在呢,没看到什么效果,因为这个控制台呢是一个懒加载方式,我们发了哪个请求以后,它整个应用受保护信息在这一块呢才会有所我们说的第一步我们先引入了依赖,我们先整合进来,那么就直接将所有的整合步骤我们放在这个秒杀项目里边来说一下整合咱们这个sentel,第一步我们这个导入依赖,导入依赖我们这个已经没问题了,主要引入它的这个start就行了,那现在呢全部引入,所以大家都能用CRLC,那现在com里面引入了。接下来第二步我们来下载S的控制台,控制台就是为了可视化界面的调整监控,那现在也有了,下来第三步来看有没有要做一些配置。
05:11
参照官方文档这一块,这个控制台准备好了以后呢,这一块是来配置我们控制台的信息,而且大家注意,我们引入了sentel以后,每一个程序里边有了它呢,都得在它自己里边配置,我们要连上控制台的信息,它的规则呢是这样子的,我们得配两个端口,一个叫portt 8719,这个呢指的是我们这个服务,比如ABC,我们一些微服务,我们这个微服务呢跟center这个控制台相当于中央的这个控制服务器,他们之间数据的发送用哪个端口8719随便写,只要不被占用就行了。接下来我们还要指定我们控制台的地址,因为每一个应用呢,都要在控制台里边监控,所以我们在每一个应用里边应该配置我们生到这个控制台的地址,这样我们启动就能有效果了,好,我们现在呢,再来配置这个地址,第三步,然后配置sel。
06:09
控制台地址信息,这样我们的数据就能收集到控制台,那来到我们的秒杀项目,我们先来以它为例,这个只要成功了,我们后来再把每一个项目都来配置一下就行,好,那现在来配两个,第一个是我直接来写sentel,既然我们倒了。Start,所以我们这直接有一个配置来找S的第一个单是这有一个transport单。我们这个单就是我们控制台,控制台的地址是local host,我们的8333好没问题,包括呢,第二个我们这个transport的传输端口,那接下来我们再来写一个传这个传输端口,这个端口呢,它是8719,这是默认的,也就是每一个微服务跟我们这个控制台中间传输数据呢,用什么来做,用哪个端口,那就是这个8719好,我们现在也准备好了,我来启动一下我们的秒杀服务。
07:07
来到我们这个秒杀服务里边,我们在这来先启动一下,那看有没有其他要做的好这一块呢,没有要做的我们就这三步,只要一启动起来呢,我们整个控制台就能监控到我们的一些信息,来稍等一下我们秒杀服务的启动,好我们秒杀服务呢,现在已经正常启动成功,当然我们启动秒杀服务要用的nacos之类的该怎么启动呢?大家还是怎么启动,跟我们孙透能没啥关系,好我现在先肯定掉,那么现在来看一下我们的控制台,我先来刷新,刷新呢这块没什么效果,我们来随便访问秒杀里边的一个请求,来看一下,我们来到秒杀里边,我们来随便复制一个请求,CTRL,好,比如呢,就是这个请求,我们获取当前需要秒杀的商品,我们来访问一下我们秒杀的项目呢,是second kill,古励mail,好current这个好,我们现在访问成功,我们来看一下控制台,我们来刷新,那这块呢,就有一个秒杀服务鼓励ma second kill,那这个名字呢,就是跟我们spring application name是一模一样的,来到这,所以我们现在呢,这块就有。
08:08
有了,包括实时监控的一些信息,那么这一块呢,也没发几个请求,这一块实际监控的信息呢,现在也没有上线过来,然后还有我们的触点电路,那现在看到我们发了第一个请求,Current second kill sqs,那这块就已经有了,然后每分钟通过了几个,他这呢都统计了一下,而且注意我们这一个请求,这是一个大的这个请求进来,如果我们发这个current这个请求的时候,吉连到了我们这个有一个图标信息,这个图标呢,其实就是上边展示的这一块,它呢也能统计出来,每分钟七个,有三个呢是图标,四个是这个,那接下来我们想要对它做流量控制了,我们这有请求都展示出来了,我们直接可以来点击一个流控,流控呢,就代表我们要进行流量控制,那流量控制怎么办?针对来源,针对来源那就是我们看如何使用里边说的这个东西,点击规则这一个针对来源默认呢,我们不针对任何来源的,然后呢,我们再来看我们设置一个我们现在呢是。
09:07
阈值类型是流控控制它的什么QPS还是线程数,所以我们现在来看我们的如何使用的这一块,流控的类型在这你是QS还是并发限制数,那么现在呢,效果明显,期间我们直接控制这个每秒请求数,单击阈值,比如我来写一个一,意思呢,每秒只能过一个,你多了就不给你放。在高级选项里边,比如流控模式,我们就是直接就控它自己,还有我们这个流控效果这一块呢,都可以参照文档,每一个是什么意思,这都有流控效果,我们是直接把它拒绝了,还是让他排队等待,还是慢启动呢?放过去,我们现在呢,直接给他快速失败,不让他等待,那这个呢,就是慢启动模式,我们现在点一个新增,那么这个流控效果呢就有了,这是我们这个流控规则,包括在这个流控规则页面点进来展示是一样的信息,我们可以在触点链路以访问的请求里边给他来进行一些流控,也可以在这来进行流控,或者在这儿新增流控,这都是一样的,那么后来再用,那现在我们看到了我们流量控制规则,每秒一个,我们来测试一下,我来F5F5,诶,我们发现我刷新一块以后呢,我们就会报一个这个block的by sent,我们就sentel给你限流了,这个流量只要一限制我们的方法都不会调用了,所以我们可以来到我们的这个控制台来看一下,如果我们这个。
10:30
流量被控了以后来到这儿,我们现在就拿这个请求来做测试,看他的这个方法会不会被调用,我们来log个info来打印一下。按一个cell for键,那如果这个方法都不被调用,整个业务逻辑不被调用,那我们的这个请求就能得到很快的释放,直接都不执行,所以我们也不会产生什么阻塞。好,我们现在就来英来说一下,那这个current second sqs正在执行,我们来测试一下效果,我们来重新启动,我们来到我们的S这个页面。
11:07
那先来等待秒杀项目启动成功,好,现在呢,这个启动成功,然后我们来到我们的这个声呢,我们来刷新一下,刷新一下我们来看我们的流控规则,大家会发现呢,没有了,没有的原因就是默认的这些流控规则,我们在控制台里边的设置都是保存到我们这个当前项目里边内存里边的,所以一启动呢就没有了,当然这是一个问题,我们先留在这儿,那我们配置好以后呢,我们就可以在控制台里边,在控制台里边调整在控制台。调整所有的这个参数调整。参数,然后呢,但是我们这个呢,默认默认所有的流控设置,流控设置保存在内存中,重启失效,所以我们现在呢,得重新来填一个流控限制。
12:00
那我们现在流控怎么填呢?我们还是来访问一下这个请求,大家看现在默认是没有控制的,我F5F5不断刷新,这都能访问,我们来想要填流控,可以在触点电路里边直接用它得到的监控得到的已执行的这些请求,在这点流控这更快,我们也可以这样,我们现在呢点一个流控规则,我们知道呢,我们要控制这个请求,那我就把这个请求复制过来,然后在这点一个新增流控规则。资源名,那就是我们这个请求,然后我们QPS限制为一个高级选项,这一块呢,默认点一个新增,这样也是可以的,也就说对于森到的来说,所有的请求默认的资源名就叫是这个请求的路径,那除了我们自定义的其他资源,我们可以用以前其他各种方式注解了,查看了定义的其他资源外,默认的这些controltrl请求资源名呢,都是这个请求路径。好,那们现在来做一个测试,流控规则呢,已经填过来了,我再来测试F5 F5诶我们刷新,我发现呢,现在控制住了,我们再来看一下我们执行了多少次,我现在已经狂刷了很多次,但现在这一块只有执行四次。
13:10
所以们现在相当于流控就生效了,只要流控一生效,我们这一块的方法都不执行,不执行我们就不会牵扯大面积的阻塞和资源的占用问题,这是我们森来做限流的最简单的体验,那下一刻我们再来加入S的其他功能,那么这一块秒杀里边这个定时任务还出现了一些控制针异常,那就是我们拿不到活动场景,这一块呢,大家在下边处理一下就行了,每一个过来如果拿不到session。等等nu那就不用调用下边了,我们就在这儿来加个不等浪,好soon呢,简单演示我们就先放到这。
我来说两句