sentinel与nacos持久化

在流量控制那篇文章中,我们在sentinel中配置好A服务对应的限流策略后,如果A服务重启就会导致sentinel中配置好的策略丢失,所以需要持久化操作。

流量控制可以有三种方法配置:一种是在sentinel控制台进行配置(服务重启则配置的策略丢失),一种是在代码中进行编写控制,还有就是从nacos中读取进行持久化配置。

限流配置

在这里插入图片描述 [
{
“resource”:"/test", 需要限流的接口
“limitApp”:“default”,
“grade”:1, 阈值类型:1为QPS,0为线程数
“count”:3, 每秒钟单机阈值,超过就会报错
“strategy”:0, 流控模式 0直接,1关联,2链路
“controlBehavior”:0, 设置流控效果 ,0直接拒接,1 Warm up 预热,2排队等待
“clusterMode”:false
},
,
{
“resource”:“POST:http://manage-nacos/get/name”,
“limitApp”:“default”,
“grade”:1,
“count”:3,
“strategy”:0,
“controlBehavior”:0,
“clusterMode”:false
}
]
在这里插入图片描述对应依赖

<dependency>
   <groupId>com.alibaba.cloud</groupId>
   <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- sentinel 流量控制依赖-->
<dependency>
   <groupId>com.alibaba.cloud</groupId>
   <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
   <version>${spring-cloud-alibaba.version}</version>
</dependency>
<!-- sentinel 底层通过actuator来进行监控-->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- 使用nacos作为sentinel持久化数据源 -->
<dependency>
   <groupId>com.alibaba.csp</groupId>
   <artifactId>sentinel-datasource-nacos</artifactId>
</dependency>

配置文件中进行配置,从nacos中读取配置信息

spring:
  jackson:
    default-property-inclusion: non_null # 全局jackson不对null做序列化输出
  cloud:
    # 将本服务与 sentinel监控进行绑定
    sentinel:
      transport:
        dashboard: 127.0.0.1:8080
      datasource:
        flow-ds: #sentinel从nacos获取指定的流控规则 这个名字可以自定义,不重复就可以
          nacos:
            server-addr: 127.0.0.1:8848
            dataId: flow-server
            groupId: DEFAULT_GROUP
            ruleType: flow # flow代表流程控制,degrade代表熔断规则
            username: nacos
            password: nacos

熔断配置

对应参数代表的含义请看 流程控制篇
在这里插入图片描述
在这里插入图片描述

[
	  {
	       "resource":"/test", 请求路径
	       "count":200,  每秒钟请求响应的平均时间,200就是一秒处理五个请求
	       "grade":0,  降级策略,0RT平均响应时间
	       "timeWindow":5  熔断时间为5}

]

服务对应的配置文件

spring:
 jackson:
   default-property-inclusion: non_null # 全局jackson不对null做序列化输出
 cloud:
   # 将本服务与 sentinel监控进行绑定
   sentinel:
     transport:
       dashboard: 127.0.0.1:8080
     datasource:
       flow-ds: #sentinel从nacos获取指定的流控规则 这个名字可以自定义,不重复就可以
         nacos:
           server-addr: 127.0.0.1:8848
           dataId: flow-server
           groupId: DEFAULT_GROUP
           ruleType: flow # flow代表流程控制,degrade代表熔断规则
           username: nacos
           password: nacos
       grade-ds: #sentinel从nacos获取指定的熔断规则 这个名字可以自定义,不重复就可以
         nacos:
           server-addr: 127.0.0.1:8848
           dataId: degrade-server
           groupId: DEFAULT_GROUP
           ruleType: degrade # flow代表流程控制,degrade代表熔断规则
           username: nacos
           password: nacos
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值