Sentinel结合Nacos实现数据持久化过程详解

 更新时间:2023年05月20日 09:48:51   作者:小白的救赎  
这篇文章主要介绍了Sentinel结合Nacos实现数据持久化过程,要持久化的原因是因为每次启动Sentinel都会使之前配置的规则就清空了,这样每次都要再去设定规则显得非常的麻烦,感兴趣想要详细了解可以参考下文

前面学习完Sentinel的流控规则以及Nacos时,就是最后的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持久化成功了

到此这篇关于Sentinel结合Nacos实现数据持久化过程详解的文章就介绍到这了,更多相关Sentinel结合Nacos内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中调用SQL Server存储过程详解

    Java中调用SQL Server存储过程详解

    这篇文章主要介绍了Java中调用SQL Server存储过程详解,本文讲解了使用不带参数的存储过程、使用带有输入参数的存储过程、使用带有输出参数的存储过程、使用带有返回状态的存储过程、使用带有更新计数的存储过程等操作实例,需要的朋友可以参考下
    2015-01-01
  • Java Swing组件复选框JCheckBox用法示例

    Java Swing组件复选框JCheckBox用法示例

    这篇文章主要介绍了Java Swing组件复选框JCheckBox用法,结合具体实例形式分析了Swing复选框JCheckBox简单用法与相关操作注意事项,需要的朋友可以参考下
    2017-11-11
  • spring cloud 配置中心native配置方式

    spring cloud 配置中心native配置方式

    这篇文章主要介绍了spring cloud 配置中心native配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • MapStruct处理Java中实体与模型间不匹配属性转换的方法

    MapStruct处理Java中实体与模型间不匹配属性转换的方法

    今天小编就为大家分享一篇关于MapStruct处理Java中实体与模型间不匹配属性转换的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • 新建springboot项目时,entityManagerFactory报错的解决

    新建springboot项目时,entityManagerFactory报错的解决

    这篇文章主要介绍了新建springboot项目时,entityManagerFactory报错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • Java JDK21 新特性全面解析

    Java JDK21 新特性全面解析

    JDK221作为JTS版本,核心正式特性提升开发效率、程序性能和代码安全性,虚拟线线、模式匹配fswitch、记录模式、密封类、分代ZGC、序列化集合六大特性,适合高并发、大数据、企业级应用场景,本文给大家介绍Java JDK21 新特性,感兴趣的朋友跟随小编一起看看吧
    2026-05-05
  • Spring Boot静态资源路径的配置与修改详解

    Spring Boot静态资源路径的配置与修改详解

    最近在做SpringBoot项目的时候遇到了“白页”问题,通过查资料对SpringBoot访问静态资源做了总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-09-09
  • 浅谈在Java中JSON的多种使用方式

    浅谈在Java中JSON的多种使用方式

    这篇文章主要介绍了浅谈在Java中JSON的多种使用方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • java使用三层架构实现电影购票系统

    java使用三层架构实现电影购票系统

    这篇文章主要为大家详细介绍了java使用三层架构实现电影购票系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • Java调用Coze API详细实现步骤

    Java调用Coze API详细实现步骤

    Coze是一款由字节跳动推出的低代码AI开发平台,让非专业开发者也能轻松创建智能应用,这篇文章主要介绍了Java调用Coze API的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2026-01-01

最新评论