SpringCloud学习笔记----Spring Cloud Alibaba Sentinel 设置服务提供者 流控 降级规则持久化

241 阅读1分钟

简介:为什么要设置Sentinel数据持久化 因为当服务提供者重新启动以后 创建的流控 降级规则 都没有了 还得重新配置 所以需要持久化 又因为Sentinel不能连接数据库保存数据 所以需要nacos配置中心来保存配置的的规则数据

步骤

一个服务提供者 application.yml 和 app启动类配置

server:
  port: 8401


#配置链接 nacos注册中心
#配置连接 sentinel去监控当前服务
spring:
  application:
    name: cloudalibaba-sentinel-service
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
    sentinel:
      transport:
        dashboard: localhost:8080
        port: 8719  #默认8719,应用与Sentinel控制台交互的端口,应用本地会起一个该端口占用HttpServer

      #配置读取配置中心的那个配置文件 dataId groupId 数据类型 规则类型 这些要跟 nacos 配置中心配置的文件的相关属性要一致
      datasource:
        ds1:
          nacos:
            server-addr: localhost:8848
            dataId: cloudalibaba-sentinel-service
            groupId: DEFAULT_GROUP
            data-type: json
            rule-type: flow

management:
  endpoints:
    web:
      exposure:
        include: '*'


feign:
  sentinel:
    enabled: true # 激活Sentinel对Feign的支持
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

//配置将当前服务注册到 nacos 注册中心
@EnableDiscoveryClient
@SpringBootApplication
public class MainApp8401{
    public static void main(String[] args) {
        SpringApplication.run(MainApp8401.class, args);
    }
}

nacos配置中心创建线管配置 保存 流控 降级等规则

当前DataId等信息 需要跟 application.yml 配置文件中的值保持一致 image.png

image.png 启动服务提供者 并访问接口【懒加载】 查看sentinel控制台 显示流控规则已经被加载出来

image.png

重新启动8401再看sentinel

扎一看还是没有,稍等一会儿

多次调用

 http://localhost:8401/rateLimit/byUrl

重新配置出现了,持久化验证通过