专栏首页技术开发——你我他Sentinel集成Nacos实现动态流控规则

Sentinel集成Nacos实现动态流控规则

目标:Sentinel的基本应用 工具:IDEA--2020.1、Sentinel Maven Nacos 学习目标:学习Sentinel集成Nacos实现动态流控规则 本次学习的工程下载链接放到文本最后面

前面我们实现了两种对定义的资源设置流控规则

1.通过FlowRuleManage.loadRules(List rules)手动加载流控规则 2.在Sentinel Dashboard上正对资源动态创建流控规则

对于第一种设置方式,我们如果介入Sentinel Dashboard,那么同样支持动态修改流控规则,但是,会存在一个问题,基于Sentinel Dashboard 所配置的流控规则只会保存在内存当中,一旦项目重启,这些规则都会被清除,为了解决这个问题,Sentinel提供了动态数据源来支持。

Sentinel集成Nacos实现动态流控规则,配置步骤如下:

1.添加Nacos数据源的依赖包

    <!--添加nacos数据源的依赖-->
    <dependency>
        <groupId>com.alibaba.csp</groupId>
        <artifactId>sentinel-datasource-nacos</artifactId>
        <version>1.7.2</version>
    </dependency>

2.创建一个REST接口,用户测试。

@RestController
public class DynamicController {
    
    @GetMapping("/dynamic")
    public String dynamic(){
        return "Hello Dynamic Rule";
    }
    
}

3.在application.yml中添加数据源配置

spring:
  application:
    name: springcloud-sentinel-dynamic
  cloud:
    sentinel:
      transport:
        dashboard: 127.0.0.1:7777
      datasource:
        - nacos:
            server-addr: 127.0.0.1:8848
            data-id: ${spring.application.name}-sentinel-flow
            group-id: DEFAULT_GROUP
            data-type: json
            rule-type: flow
server:
  port: 8888

配置说明: 1.datasource:目前支持redis、apollo、zk、file、nacos,选择什么类型的数据源就配置相对应的key即可。 2.data-id:可以设置为${spring.application.name},方便区分不同应用的配置 3.rule-type:表示数据源中规则属于那种类型,如flow、degrade、param-flow、gw-flow等 4.data-type:指配置项的内容格式,SpringCloud Alibaba Sentinel提供了JSON和XML两种格式,如果需要自定义只需要将值配置为custom,并配置converter-class指向converter类

4.登陆控制台,创建流控配置规则,配置信息如下

记住nacos中的data-id和你应用中的application.yml中的保持一致

5.最后登陆Sentinel Dashboard ,找到只想项目名称菜单下的"流控规则",就可以看到在Nacos上所配置的流控规则已经被加载了,如下图所示

最后访问http://localhost:8888/dynamic 刷新观察效果


下载链接:springcloud-sentinel-dynamic-rule.zip

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spring Boot集成邮件发送功能

    目标:实现Spring Boot集成邮件发送功能 工具:IDEA--2020.1 学习目标:实现Spring Boot集成邮件发送功能 本次学习的工程下载链接放...

    背雷管的小青年
  • Sentinel——URL资源清洗

    目标:Sentinel的基本应用 工具:IDEA--2020.1、Sentinel Maven Spring Boot 学习目标:学习基于Sentinel Da...

    背雷管的小青年
  • Sentinel——自定义URL限流异常

    目标:Sentinel的基本应用 工具:IDEA--2020.1、Sentinel Maven 学习目标:学习Sentinel的自定义URL限流异常 本次学习的...

    背雷管的小青年
  • Flash/Flex学习笔记(2):捕获摄像头

    Flash中使用摄像头,个人感觉比silverlight要更容易 时间轴第一帧上敲以下代码就可以了: //import fl.controls.Label; ...

    菩提树下的杨过
  • 使用Nginx反向代理与proxy

    linux下通过Nginx反向代理和proxy_cache缓存搭建CDN服务器加快Web访问速度的配置方法碰到问题:

    习惯说一说
  • 使用Python的四种机器学习技术

    虽然本教程专门用于Python中的机器学习技术,但我们很快就会转向算法。但在我们开始关注技术和算法之前,让我们看看它们是否是同一个东西。

    Java架构师历程
  • python学习笔记:*args和**kwargs使用原理?

    一.*args和**kwargs原理  先看个例子: def test(*args,**kwargs): print("args =",args) ...

    用户1679793
  • 我们等你来

    微信终端开发团队 2018 暑期实习 微信终端开发团队(公众号:WeMobileDev),主要负责 iOS / Android / Windows / Mac...

    微信终端开发团队
  • 小朋友学经典算法(14):回溯法和八皇后问题

    回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这...

    海天一树
  • 小程序中图片高度等比缩放

    前言:小程序中的image组件,有默认的宽度(320px)和高度(240px),如果想让图片按比例显示,那就需要自己设置宽度 & 高度。今天来说一下图片等比缩...

    连胜

扫码关注云+社区

领取腾讯云代金券