cn.mldn
cloud-api-commons
1.0-SNAPSHOT
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
com.alibaba.csp
sentinel-datasource-nacos
com.alibaba.cloud
spring-cloud-starter-alibaba-sentinel
org.springframework.cloud
spring-cloud-starter-openfeign
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-actuator
org.springframework.boot
spring-boot-devtools
runtime
true
cn.hutool
hutool-all
4.6.3
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
配置位置
我们这可以设置自己的值,如果单机域值。这里我们可以设置一个2
只要你在一秒内多点两次就会出问题
然后你又恢复一秒点两次啊,然后就没事。
思考:
为什么呢,因为在微服务里面里面很多时候调用的时候,我这里限流外,你那里也可以进行限流。
一个系统怕的是突然来了访问量超级多。预热就是请允许我系统慢慢的才能来处理。
请与Hystrix的服务熔断进行对比学习。相关文章
而我们的sentinel是没有半开状态的。
RT:慢调用比例 (SLOW_REQUEST_RATIO):选择以慢调用比例作为阈值,需要设置允许的慢调用 RT(即最大的响应时间),请求的响应时间大于该值则统计为慢调用。当单位统计时长(statIntervalMs)内请求数目大于设置的最小请求数目,并且慢调用的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求响应时间小于设置的慢调用 RT 则结束熔断,若大于设置的慢调用 RT 则会再次被熔断。
条件时一秒内有五个请求,并且平均时间大于阈值的条件。
那要是你多个请求来处理就完了【模拟我们用jmeter进行测试,模拟10个线程在一秒过去,此时就访问D根本出不来】
就一分钟之内,如果异常数到达阈值就报错,而你要跳转到相应的页面展示给用户。
即如果四次你都是出现错误,那就跳闸段了。
就比如带有如下的一个p1的参数进行限流【假设这个p1比较火】
其实就是例外的时候,然后什么什么
此时你p1等于5的话,是没事的,你只要点到200秒每次后才会报错。
我们之前的限流是对某一个具体的规则进行限流,而系统规则则是对总体进行限流。
之前的ribbon
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
cn.mldn
cloud-api-commons
1.0-SNAPSHOT
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-actuator
org.springframework.boot
spring-boot-devtools
runtime
true
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
server:
port: 9003
spring:
application:
name: nacos-payment-provider
cloud:
nacos:
discovery:
server-addr: localhost:8848 #配置Nacos地址
management:
endpoints:
web:
exposure:
include: '*'
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
cn.mldn
cloud-api-commons
1.0-SNAPSHOT
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-actuator
org.springframework.boot
spring-boot-devtools
runtime
true
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
server:
port: 9004
spring:
application:
name: nacos-payment-provider
cloud:
nacos:
discovery:
server-addr: localhost:8848 #配置Nacos地址
management:
endpoints:
web:
exposure:
include: '*'
org.springframework.cloud
spring-cloud-starter-openfeign
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
com.alibaba.cloud
spring-cloud-starter-alibaba-sentinel
cn.mldn
cloud-api-commons
1.0-SNAPSHOT
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-actuator
org.springframework.boot
spring-boot-devtools
runtime
true
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
server:
port: 84
spring:
application:
name: nacos-order-consumer
cloud:
nacos:
discovery:
server-addr: localhost:8848
sentinel:
transport:
#配置Sentinel dashboard地址
dashboard: localhost:8080
#默认8719端口,假如被占用会自动从8719开始依次+1扫描,直至找到未被占用的端口
port: 8719
#消费者将要去访问的微服务名称(注册成功进nacos的微服务提供者)
service-url:
nacos-user-service: http://nacos-payment-provider
# 激活Sentinel对Feign的支持
feign:
sentinel:
enabled: true
1,2,3是正常用户,而4是非法访问,而且4之后,就是非法访问。
那如果访问4到底是fallback接管呢,还是blockhandler接管呢
肯定是先引入feign的依赖【84里面】
激活sentinel对feign的支持
像我们写的上面部分,只要微服务重新启动,那就这些配置就消失了。