zoukankan      html  css  js  c++  java
  • sentinel 规则持久化到nacos

    问题描述

    Sentinel Dashboard中添加的规则是存储在内存中的,只要项目一重启规则就丢失了

    此处将规则持久化到nacos中,在nacos中添加规则,然后同步到dashboard中;

    后面研究如果将dashboard中添加的规则自动添加到nacos中

    官网教程地址:https://github.com/alibaba/spring-cloud-alibaba/wiki/Sentinel

    实现过程

    1.导入依赖包

    <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.6.RELEASE</version>
            <relativePath/>
        </parent>
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>Greenwich.SR2</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
    
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                    <version>0.9.0.RELEASE</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
            </dependency>
            <dependency>
                <groupId>com.alibaba.csp</groupId>
                <artifactId>sentinel-datasource-nacos</artifactId>
                <version>1.5.2</version>
            </dependency>
        </dependencies>

    2.在application.properties中配置sentinel-nacos信息

    spring.application.name=mz
    server.port=8003
    
    # sentinel dashboard
    spring.cloud.sentinel.transport.dashboard=localhost:8080
    
    spring.cloud.sentinel.datasource.ds1.nacos.server-addr=localhost:8848
    spring.cloud.sentinel.datasource.ds1.nacos.data-id=mz-sentinel
    spring.cloud.sentinel.datasource.ds1.nacos.group-id=DEFAULT_GROUP
    spring.cloud.sentinel.datasource.ds1.nacos.data-type=json
    spring.cloud.sentinel.datasource.ds1.nacos.rule-type=flow

    3.在nacos中添加规则

    [
        {
            "resource": "/hello",
            "limitApp": "default",
            "grade": 1,
            "count": 5,
            "strategy": 0,
            "controlBehavior": 0,
            "clusterMode": false
        }
    ]

    4.创建测试类

    @RestController
    public class Test {
    
        @GetMapping("/hello")
        public String hello() {
            return "hello sentinel";
        }
    }

    访问几次接口之后,就可以在Sentinel Dashboard 中看到在nacos中配置的规则信息了,并且项目服务重启依然存在

    本文参考:http://blog.didispace.com/spring-cloud-alibaba-sentinel-2-1/

  • 相关阅读:
    MySQL自定义函数 1418报错
    MySQL存储过程查询
    MySQL存储过程---游标
    MySQL存储过程---流程控制(循环)
    MySQL存储过程---流程控制(分支)
    设计模式——单例模式
    准备写一个 四川票务网的 检测票自动买汽车票功能,结果登录不上悲伤,继续研究
    python批量下载微信好友头像,微信头像批量下载
    arduino 522样本中文注释
    zabbix服务的部署
  • 原文地址:https://www.cnblogs.com/gyli20170901/p/11279576.html
Copyright © 2011-2022 走看看