1. 首页
  2. 综合百科
  3. 在线是什么意思(阿里解决方案SpringCloud)

在线是什么意思(阿里解决方案SpringCloud)

简介:关于在线是什么意思(阿里解决方案SpringCloud)的相关疑问,相信很多朋友对此并不是非常清楚,为了帮助大家了解相关知识要点,小编为大家整理出如下讲解内容,希望下面的内容对大家有帮助!
如果有更好的建议或者想看更多关于综合百科技术大全及相关资讯,可以多多关注茶馆百科网。

《乐学课堂》特邀作者:老顾

转载请声明出处!

前言

之前介绍了Sentinel的基本工作原理和Sentinel的监控。接下来,顾重点介绍了哨兵的流量控制管理。

注意:SentinelDashboard之前部署在192.168.5.153服务器上。

nohup Java-jar sentinel-dashboard-1 . 6 . 3 . jar

整合Sentinel

首先,我们创建一个springboot项目并引入依赖项。

我们采用了最新版本的boot2.1.x和Greenwich。云的SR2,和阿里巴巴的2.1.0 .发布。

我们只需要在项目中引入Spring-Cloud-Starter-Alibaba-Sentinel。这样就可以获得限流熔断功能。

配置

下面我们只需要在项目应用程序中配置仪表板服务器地址。

spring . cloud . Sentinel . transport . dashboard:配置sentinel控制台的ip和端口。

请求路径

让我们创建另一个请求控制器来模拟请求接口。

启动

启动后,请求接口http://localhost/test-b和http://localhost/test-a;查看sentinel控制台

意味着应用程序集成Sentinel成功了。下面介绍一下如何设置流量控制。

流控设置

在& quot群集链接& quot控制台的菜单,可以看到请求接口(也叫端点)的层级关系,看到一些指标(QPS通过,QPS拒绝,线程数,平均RT,通过分钟,拒绝分钟),在操作栏有一个【流量控制】按钮。

资源名:默认为请求路径,当然也不一定是路径,只要是唯一的名称即可。

来源:Sentinel可以区分不同的调用者,在调用同一资源时为不同的调用者设置不同的流控规则;比如app-a设置QPS类型的流量控制,app-b设置线程数类型的流量控制。默认意味着不区分调用者。

阈值类型:

QPS:调用这个api时,QPS会在达到单机阈值时限制线程数;调用这个api的时候,会在达到单机阈值的时候限制线程的数量。

集群与否:这个后面会介绍。

流控模式

直接模式

然后上面的流控设置,Sentinel的流控模式代表的是流控模式,默认是【直接】,还有关联和链接。

哨兵的流控效果:默认【快速失败】,还有预热,排队等待。

Sentinel默认的流控处理是【直接-快速失败】,我们来做个案例:

我们来设置/test-b接口的流量控制。单QPS阈值为1,意味着每秒请求不能超过1,否则我们做流控处理,处理模式直接调用失败。

我们调用/test-b,慢慢请求,正常返回;快速请求几次,超过阈值。

接口返回了BlockedbySentinel(flowlimiting),这意味着它受到限制。

关联模式

连接是什么意思?

当相关资源达到阈值时,它们会限制自己。

先测试一下吧。我们现在有两个接口/test-a,/test-b;现在让我们修改前面的流控制规范并设置一个关联。

关联资源设置为/test-a,上面设置的效果是当关联资源/test-a的qps阈值超过1时,限制/test-b的接口(是否感觉霸道,关联资源达到阈值,限制该资源的接口)。

我们去看看。这里顾使用了PostMan工具调用/test-a,每300ms循环调用一次。这确保了相关联的资源/测试a肯定超过阈值。

我们再次要求使用/test-b,结果发现它受到了限制。

这种关联模型有哪些应用场景?

比如订单服务中会有两个重要的接口,一个是读取订单信息接口,一个是写入订单信息接口。

/blockquote>

在高并发业务场景中,两个接口都会占用资源,如果读取接口访问过大,就会影响写入接口的性能。业务中如果我们希望写入订单比较重要,要优先考虑写入订单接口。那就可以利用关联模式;

在关联资源上面设置写入接口,资源名设置读取接口就行了;这样就起到了优先写入,一旦写入请求多,就限制读的请求。

关联模式的核心就是保护关联资源的。

链路模式

只记录链路入口的流量


上面是解释,有点不是太清楚,我们来看个案例,我们改造一下代码



上面增加了一个服务,方法用@SentinelResource进行注解

@SentinelResource以后会解释,大家可以理解就是一个资源名

让/test-a和/test-b都调用这个服务;那我们就可以利用链路模式设置限制哪个入口的流量了



这样设置就起到了,请求接口/test-a会调用getOrder,会进行流量控制;但/test-b则不会。

这个和上面的针对来源很类似,但有区别的就是:

针对来源是微服务级别的,链路模式的入口资源是针对方法接口的。

流量效果

快速失败

就是流量达到阀值,直接返回报异常

WarmUp

也叫预热,根据codeFactor(默认3)的值,从(阀值/codeFactor)为初始阀值,经过预热时长,才到达设置的QPS的阀值

上面是什么意思呢?我们来举个案例,阀值为100,预热时长设置10秒。


代表的含义就是,系统初始化的阀值为100/3,即阀值为33;然后过了10秒,阀值才恢复到100

这个预热的应用场景,如:秒杀系统在开启的瞬间,会有很多流量上来,很有可能把系统打死,预热方式就是把为了保护系统,可慢慢的把流量放进来,慢慢的把阀值增长到设置的阀值。

排队等待

从字面上面就能够猜到,匀速排队,让请求以均匀的速度通过,阀值类型必须设成QPS,否则无效。


上图的设置含义:/test-b的每秒1次请求,超过的话就排队等待,等待的超时时间为10000毫秒。

我们再次利用Postman工具,循环请求/test-b,我们看看控制台的日志输出


我们可以发现test-b的每隔1秒执行一次,这么多的请求没有被拒绝,而且进入的排队。

排队的应用场景是什么呢?

比如有时候系统在某一个时刻会出现大流量,之后流量就恢复稳定,可以采用这种排队模式,大流量来时可以让流量请求先排队,等恢复了在慢慢进行处理

总结

Sentinel的流控方式还是比较实用的,功能比较强大,也是阿里通过自己的实战总结提炼的。小伙伴们要去实战体验一下哦,谢谢!!!

对本文内容感兴趣的朋友,欢迎大家在留言区进行交流讨论!




往期推荐:

第一篇:SpringCloudAlibaba之Nacos

第二篇:SpringCloudAlibaba之Nacos配置中心

第三篇:SpringCloudAlibaba之Nacos多环境多项目管理

第四篇:SpringCloudAlibaba之Nacos共享配置、灰度配置

第五篇:SpringCloudAlibaba之Nacos集群、持久化

第六篇:SpringCloudAlibaba之Sentinel框架工作原理

本文主要介绍了关于在线是什么意思(阿里解决方案SpringCloud)的相关养殖或种植技术,综合百科栏目还介绍了该行业生产经营方式及经营管理,关注综合百科发展动向,注重系统性、科学性、实用性和先进性,内容全面新颖、重点突出、通俗易懂,全面给您讲解综合百科技术怎么管理的要点,是您综合百科致富的点金石。
以上文章来自互联网,不代表本人立场,如需删除,请注明该网址:http://23.234.50.4:8411/article/96015.html