开发者学堂课程【精通 Spring Cloud Alibaba:Sentinel 持久化的四种方案】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/634/detail/10145
Sentinel 持久化的四种方案
内容介绍:
一、Sentinel 在默认情况下不支持数据持久化
二、Sentinel 支持数据规则持久化
一、Sentinel 在默认情况下不支持数据持久化
1、举例:
@SentinelResource(value= "getOrderDowngradeRtType", blockHandler ="getorderDowngradeRtType "
@RequestMapping("/getOrderDowngradeRtType")
public String getOrderDowngradeRtType( ) {
return
“getOrderSentinel” ;
}
假设上述接口需要限流,可以在平台内直接创建,点击新增流控规则,资源名称输入 “getOrderSentinel”,针对来源输入“default”,阈值类型选择“QPS”,单机阈值表示为1(表示每秒钟只能执行一个请求,超出阈值范围就会影响限流),点击新增。
若在1秒内访问两次接口则会报错“改接口已经被限流啦!”
2、已经配置好流控规则,重启则会使配置规则消失,只留下“orderTwoMember”,这是代码当中项目启动时就存在的。
二、Sentinel 支持数据规则持久化
官方默认情况下支持4种:
1、nacos 分布式配置中心
2、携程的阿波罗
3、存放本地文件
4、Zookeeper
sentinel
:
transport
:
dashboard
:127.0.0.1:8718
eager
:true
datasource
:
ds
:
nacos:
### nacos 连接地址
server-addr
:localhost:8848
### nacos 连接的分组
group-id
:DEFAULT_GROUP
###路由器存储规则
rule- type
:flow
###读取配置文件的 data-id
data-id
:meitemayikt- order-sentinel
###读取培训文件类型为 json
data-type: json
就会出现:
FileDataSourceProperties file ;
NacosDataSourceProperties nacos;
ZookeeperDataSourceProperties zk;
ApolloDataSourceProperties apollo;