当前位置: 首页 > wzjs >正文

springboot做音乐网站重庆做seo外包的

springboot做音乐网站,重庆做seo外包的,如何做织梦手机网站,目前流行的网站分辨率做多大sentinel是阿里巴巴研发的一款微服务组件,主要为用户提供服务保护,包括限流熔断等措施 (一)主要功能 流量控制(限流):比如限制1s内有多少请求能到达服务器,防止大量请求打崩服务器…

sentinel是阿里巴巴研发的一款微服务组件,主要为用户提供服务保护,包括限流熔断等措施

(一)主要功能

流量控制(限流):比如限制1s内有多少请求能到达服务器,防止大量请求打崩服务器

熔断降级:当下级服务响应慢或者不可用时,熔断服务,快速失败,保护上游服务

(二)使用方法

去Releases · alibaba/Sentinel · GitHub下载对应的jar包
在jar包所在的目录cmd运行命令

java -Dserver.port=8090 -Dcsp.sentinel.dashboard.server=localhost:8090 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.8.jar

然后通过8080端口即可访问sentinel的控制台 ,账号密码均为sentinel

然后去项目中添加依赖

<dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-transport-simple-http</artifactId><version>x.y.z</version>
</dependency>

同时修改服务的application.yml

spring:cloud:sentinel:transport:dashboard: localhost:8090   # 指定 Sentinel Dashboard 地址port: 8719                  # 客户端监控端口,用于与 Sentinel Dashboard 通信

dashboard的地址必须和sentinel控制台的地址一致,连接控制台
port端口号是服务与sentinel的通信端口,是独立的,不能和运行服务的端口一样

在项目的代码中使用:

@SentinelResource注解

常用参数

value:指定资源名,在控制台中可看
blockHandler:触发限流规则时会调用哪个方法,一般会写一个兜底方法,方法参数要和设置了限流的方法一致,但可以加一个BlockException
fallback:触发异常时调用哪个兜底方法,和上面的很像,但是上面是用于触发限流后用的,这个是用于触发异常用的,方法参数可以加一个Throwable

(三)限流规则

限流主要是阻止大量请求同时打到服务器上

资源名 与@SentinelResource的value对应
针对来源 就是调用这个controller发送请求的来源,你要限流哪些来源的,默认全部
阈值类型:QPS每秒通过多少个(多少个就是单机阈值的数量),并发线程数通常配合线程池使用
是否集群:多服务器的情况下会用,也要设置一个阈值
比如,设置全局阈值12,比如进来100个请求,有三个服务器,它们总共只能处理12个请求
如果设置的单机均摊12,进来100个请求,就会每个服务器都能处理12个请求,总共36

继续看:

流控模式分为3种:直接、关联和链路

直接没什么好说的,就是对单一资源进行限流
关联就是a资源关联b资源,当b资源访问量大触发限流时,a也会被限流
链路就是当同一个方法会被多种渠道调用时,只对部分渠道进行限流

流控效果分三种:快速失败、warm up和排队等待

快速失败就是触发限流后,后面的请求全部丢弃,报错
warm up就是冷启动,需要设置启动时间n,前n秒内处理量大概为阈值的1/3,后面再逐步提高处理量达到阈值
排队等待就是触发限流后,后面的请求不会丢弃,而是排队等待前面的执行完后它再执行,需要设置排队时间,超过这个时间请求还未被处理的话,丢弃

ps:只有快速失败支持关联和链路,其它两种不支持

(四)熔断规则

当a服务调用b服务时,b服务可能会卡住执行很久,也可能会异常,这时a要及时熔断,切断与b的联系,保护自己

又有一个问题?怎么判断服务有问题去熔断呢?熔断之后怎么恢复连接呢?

答:判断熔断主要根据熔断策略,符合条件即熔断。恢复连接的话,当a、b服务间断开的时长达到熔断时长后,服务会切换到半开状态,a会向b发送一个或几个请求,如果这些请求正常执行,那就取消熔断恢复运行,如果这些请求有问题(满足熔断条件),就会继续保持熔断

熔断策略有三种:慢调用、异常比例和异常数

选择慢调用

最大RT:最大的响应时间,超过这个时间判定为慢调用
比例阈值:当n%的调用是慢调用时,触发熔断
熔断时长:熔断多久
最小请求数:要触发熔断起码要有多少个请求,低于这个数值不会熔断
统计时长:统计时长

选择异常比例

其他不变,没用最大RT,比例阈值改为当n%的调用是异常时触发熔断

选择异常数

其他不变,比例阈值改为异常数

(五)热点规则

就是可以对方法的具体参数进行限流
当用户调用这个方法,携带了3个参数,你可以设置热点来对具体的第几个参数进行限流

(六)总结

sentinel是服务保护的重要组件,起到限流、熔断等作用

首先下载sentinel的jar包,用命令运行,用浏览器打开sentinel的控制台

然后去项目中添加对应依赖,修改代码,添加@SentinelResource,并写对应的兜底方法

@RestController
public class UserController {@GetMapping("/user")@SentinelResource(value = "getUser",               // 资源名,用于控制台设置规则fallback = "fallbackMethod",    // 业务异常兜底方法blockHandler = "blockHandlerMethod" // 流控、熔断时的处理方法)public String getUser(@RequestParam(required = false) String name) {if ("error".equals(name)) {throw new RuntimeException("模拟业务异常");}return "用户:" + name;}// fallback 方法:处理业务异常(如运行时异常)public String fallbackMethod(String name, Throwable e) {return "fallback:业务处理异常,返回兜底用户";}// blockHandler 方法:处理被 Sentinel 限流、降级、熔断的情况public String blockHandlerMethod(String name, BlockException ex) {return "blockHandler:服务被限流或熔断,返回默认用户";}
}

其实代码部分很少,主要用控制台对限流规则、熔断规则进行配置即可

http://www.dtcms.com/wzjs/529954.html

相关文章:

  • 如何让自己网站排名提高深圳外贸网络推广
  • 邯郸建设企业网站郑州网站制作推广公司
  • 优化模型seo技术教程网
  • wordpress创建登录页优化营商环境条例心得体会
  • 个人网站如何做推广安卓优化大师手机版下载
  • 大连做网站谁家售后好营销型网站的类型有哪些
  • 网站的优化什么做seo建站收费地震
  • 哪个网站可以做h5页面百度移动端排名
  • 博客发布 网站模版产品推广公司
  • 广州网站建设公司好吗seo优化工具
  • 中国建设监理业协会网站郑州关键词排名顾问
  • 网站建设需求文案长沙网站seo公司
  • java如何做公司网站做一个企业网站需要多少钱
  • 网站备案拍照背景幕布开鲁网站seo免费版
  • 建设银行澳洲招聘网站百度公司招聘信息
  • 免费网站创建工具互联网广告优化
  • 做网站用花生壳哪个版本天津网站策划
  • 学校二级网站建设自查情况揭阳seo推广公司
  • 天津市住房和城乡建设委员会官方网站每日英语新闻
  • 营销型网站建设原则网络推广技巧
  • 门户网站的特点怎么去推广自己的产品
  • 安徽宿州住房与城乡建设玩网站新东方在线网上课程
  • 软件开发技术方案模板深圳市seo上词贵不贵
  • 网站活动怎么做宁波网站推广哪家公司好
  • php网站后台管理系统源码网站优化排名推荐
  • 中国建设信号工证网站桔子seo查询
  • 用php做网站的原理抚州seo排名
  • 哈尔滨网站制作专业关键词林俊杰的寓意
  • 海南省城乡住房建设厅网站首页十大技能培训机构排名
  • 做仪表宣传哪个网站好全网营销