【SpringCloud Alibaba】Sentinel持久化结合Nacos

        在前面学习完Sentinel的流控规则以及Nacos时,就是最后的Sentinel持久化了。需要持久化的原因是因为每次启动Sentinel都会使之前配置的规则就清空了,这样每次都要再去设定规则显得非常的麻烦。

        思路就是:将流控规则配置进Nacos服务注册中心中,这样每次启动Sentinel无需配置规则就有规则,但前提是启动完Sentinel后要先进入方法才看得到规则,因为Sentinel是懒加载机制

一、引入依赖

<!--SpringCloud Alibaba Sentinel-datasource-nacos 持久化技术-->
<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-datasource-nacos</artifactId>
    <version>1.8.1</version>
</dependency>

二、启动类注解

@SpringBootApplication
@EnableDiscoveryClient
public class CloudAlibabaSentinelService {
    public static void main(String[] args) {
        SpringApplication.run(CloudAlibabaSentinelService.class, args);
    }
}

三、改yml

server:
  port: 8401
spring:
  application:
    name: cloud-sentinel-service
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #Nacos服务注册中心地址
    sentinel:
      transport:
        dashboard: localhost:8080 #配置 dashboard监控平台地址
        port: 8719 #默认8719端口 如果被占用就自增直至找到未被占用的端口
      datasource:
        ds1:
          nacos:
            server-addr: localhost:8848
            dataId: ${spring.application.name}
            groupId: DEFAULT_GROUP
            data-type: json
            rule-type: flow
            
#暴露监控断点
management:
  endpoint:
    sentinel:
      enabled: true
  endpoints:
    web:
      exposure:
        include: '*'

四、写控制层逻辑

@RestController
public class SentinelController {
    @GetMapping("/persistence")
    @SentinelResource("persistence")
    public R persistence(){
        return new R(200,"持久化测试正常",new Payment(2022L,"testPersistence"));
    }
}

五、Nacos

在Java启动后登录Nacos网页可以看到服务列表已经出现刚刚写的spring.application.name

在配置列表中配置我们需要的信息。

关于JSON中的信息具体含义如下:

resource:资源名称;
limitApp:来源应用;
grade:阈值类型;0表示线程数,1表示QPS;
count:单机阈值;
strategy:流控模式;0表示直接,1表示关联,2表示链路;
controlBehavior:流控效果;0表示快速失败,1表示Warm Up,2表示排队等待;
clusterMode:是否集群。

六、Sentinel

登录Sentinel页面刷新会发现有spring.application.name,但里面空空如也。

因为Sentinel是懒加载机制,所以这时候通过网址调用我们控制层的方法。

这时候回来Sentinel监控平台上刷新就能看到流控规则,正像Nacos中配置的JSON格式一样。

到这里就证明Sentinel持久化成功了,感谢观看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值