Spring Cloud Alibaba-04-Sentinel规则持久化Nacos方式-推荐

Lison <dreamlison@163.com>, v1.0.0, 2023.10.03

Spring Cloud Alibaba-04-Sentinel规则持久化全面Nacos方式

文章目录

  • Spring Cloud Alibaba-04-Sentinel规则持久化全面Nacos方式
    • Sentinel-Dashboard 添加规则Nacos双向绑定
    • 实现
      • 注释掉test
      • 增加 NacosConfig配置
      • 加入Repository配置
      • 注入Repository
      • 最后替换掉对应Controller中对应的repository,
      • 添加参数配置

Sentinel-Dashboard 添加规则Nacos双向绑定

官网文档地址:https://sentinelguard.io/zh-cn/docs/quick-start.html

思路
从动态规则扩展章节得知,可以通过NacosDataSource作为配置数据源
从Sentinel-Dashboard代码中可以得知,dashboard通过http请求推送配置变更

publishRules(entity.getApp(), entity.getIp(), entity.getPort()).get(5000, TimeUnit.MILLISECONDS);List<FlowRuleEntity> rules = repository.findAllByMachine(MachineInfo.of(app, ip, port));return sentinelApiClient.setFlowRuleOfMachineAsync(app, ip, port, rules);

所以,只需要在dashboard推送变更后,将配置保存到nacos中且搭配NacosDataSource扩展即可实现配置持久化

从dashboard各个规则的Controller中可以发现,每个Controller都有类似repository的注入

    @Autowiredprivate RuleRepository<DegradeRuleEntity, Long> repository;

负责规则的增删改查,默认提供的都是内存控制,例如InMemDegradeRuleStore ,每个内存控制类都继承同一个抽象类

public class InMemDegradeRuleStore extends InMemoryRuleRepositoryAdapter<DegradeRuleEntity>

只要在respository写操作后添加配置推送的nacos的操作

实现

注释掉test

        <dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-datasource-nacos</artifactId>
<!--            <scope>test</scope>--></dependency>

增加 NacosConfig配置

package com.alibaba.csp.sentinel.dashboard.config;import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.PropertyKeyConst;
import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.exception.NacosException;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.StringUtils;import java.util.Properties;/*** @className: com.alibaba.csp.sentinel.dashboard.config-> NacosConfig* @description:* @author: Lison* @createDate: 2023-10-03*/
@Configuration
@EnableConfigurationProperties(NacosConfig.NacosProperties.class)
public class NacosConfig {@ConfigurationProperties(prefix = "nacos.config")public static class NacosProperties{private String group = "DEFAULT_GROUP";private String namespace;private String authDataId = "sentinel-dashboard-auth";private String username;private String password;private Long timeout = 3000L;private String serverAddr;public String getGroup() {return group;}public void setGroup(String group) {this.group = group;}public String getNamespace() {return namespace;}public void setNamespace(String namespace) {this.namespace = namespace;}public Long getTimeout() {

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/695128.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ElasticSearch聚合操作

目录 ElasticSearch聚合操作 基本语法 聚合的分类 后续示例数据 Metric Aggregation Bucket Aggregation ES聚合分析不精准原因分析 提高聚合精确度 ElasticSearch聚合操作 Elasticsearch除搜索以外&#xff0c;提供了针对ES 数据进行统计分析的功能。聚合(aggregation…

压缩感知中常用的稀疏基

稀疏基的基本概念 在压缩感知中&#xff0c;稀疏基是指可以将信号表示为少数几个非零系数的基。信号在这组基下的表示称为稀疏表示。理想情况下&#xff0c;信号在稀疏基下的大部分系数都应该为零&#xff0c;只有少数几个系数是非零的。稀疏基的选择对信号的稀疏表示和压缩感…

第3.4章:StarRocks数据导入-Routine Load

注&#xff1a;本篇文章阐述的是StarRocks-3.2版本的Routine Load导入机制 一、概述 Routine Load&#xff08;例行导入&#xff09;支持用户提交一个常驻的导入任务&#xff0c;可以将消息流存储在 Kafka 的Topic中&#xff0c;通过订阅Topic 中的全部或部分分区的消息&#…

【备忘】云主机环境准备

文章目录 一&#xff0c;基础设置二&#xff0c;scp命令三&#xff0c;nginx相关 一&#xff0c;基础设置 #查看cpu cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c#查看os版本 cat /etc/redhat-release#升级所有包同时也升级软件和系统内核 yum -y updatehostnamect…

AN7525 集成锂电池充电管理和轻触三功能 LED 驱动专用芯片 实现全亮、25%亮、暴闪和灭 三种功能

AN7525是一款单片集成锂电池充电管理和轻触三功能 LED 驱动专用芯片。其内部集成了锂电池充电管理电路&#xff0c;可提供高达 600mA的充电电流:内部集成了高达 800m 的 LED 驱动电路&#xff0c;可驱动单颗 LED 实现全亮25%亮、暴闪和灭循环的轻触三功能切换控制。 AN…

【MySQL】报错 Incorrect string value: ‘\xE5\xA4\xA9\xE5\x96\x9C‘ for column的解决方法

目录 解决方法如下&#xff1a;例如&#xff1a; 在向数据库中插入中文时遇到报错Incorrect string value: \xE5\xA4\xA9\xE5\x96\x9C for column &#xff0c;此时为数据库的编码格式有问题&#xff0c;可以按照如下方法修改 解决方法如下&#xff1a; 使用show create table…

Mysql的SQL调优-面试

面试SQL优化的具体操作&#xff1a; 1、在表中建立索引&#xff0c;优先考虑where、group by使用到的字段。 2、尽量避免使用select *&#xff0c;返回无用的字段会降低查询效率。错误如下&#xff1a; SELECT * FROM table 优化方式&#xff1a;使用具体的字段代替 *&#xf…

Hash 算法详解!

什么是Hash算法 散列算法&#xff08;Hash Algorithm&#xff09;&#xff0c;又称哈希算法&#xff0c;杂凑算法&#xff0c;是一种从任意文件中创造小的数字「指纹」的方法。Hash算法就是一种以较短的信息来保证文件唯一性的标志&#xff0c;这种标志与文件的每一个字节都相…

COMSOL在光电领域应用(常见案例合集)

随着科技的飞速发展&#xff0c;光电领域作为现代科学与技术的交汇点&#xff0c;正受到越来越多的关注。在这一领域中&#xff0c;COMSOL作为一款强大的多物理场仿真软件&#xff0c;正发挥着不可或缺的作用。本文将通过一些常见的案例&#xff0c;探讨COMSOL在光电领域的应用…

学习数仓工具 dbt

DBT 是一个有趣的工具&#xff0c;它通过一种结构化的方式定义了数仓中各种表、视图的构建和填充方式。 dbt 面相的对象是数据开发团队&#xff0c;提供了如下几个最有价值的能力&#xff1a; 支持多种数据库通过 select 来定义数据&#xff0c;无需编写 DML构建数据时&#…

基于EasyCVR视频汇聚系统的公安网视频联网共享视频云平台建设思路分析(一)

随着社会的发展和科技的进步&#xff0c;视频监控系统在各个领域的应用越来越广泛&#xff0c;视频云平台建设已经成为了行业数字化转型的重要一环。公安网视频汇聚联网共享云的建设需要充分考虑技术、架构、安全、存储、计算等多方面因素&#xff0c;以确保平台的稳定性和可用…

openEuler2203 LTS安装VMware WorkStation Pro 17并远程桌面连接Linux服务器

openEuler 2203 LTS默认只有命令行&#xff0c;没有GUI图形界面&#xff0c;在其中安装VMware WorkStation需要有图形界面的支持。这里以安装深度的DDE桌面环境&#xff0c;最后通过VNC远程桌面连接Linux服务器操作VMware WorkStation。 以下操作请保持网络能正常连接 1、安装…

智能搬运机器人|海格里斯将如何持续推进工业和物流的智能化升级与发展?

存取、搬运、分拣是物流行业中的通用功能&#xff0c;但具体到每个行业又十分不同&#xff0c;例如&#xff1a;新能源电池领域&#xff0c;它所搬运的东西是电池&#xff0c;50KG~200KG&#xff1b;快递行业领域&#xff0c;所要处理的物料是那种扁平件和信封等等&#xff0c;…

AN7523 轻触三功能LED驱动芯片 全亮、25%亮和暴闪三种功能的切换 适用于头灯、手电筒等

AN7523是一款轻触三功能 LED 驱动芯片。可驱动单颗 LED 实现全亮、25%亮、暴闪和灭循环的轻触三功能切换控制。AN7523内部集成按键防抖模块&#xff0c;可实现对轻触开关的检测与按键防抖。通过轻触开关控制LED实现全亮、25%亮和暴闪三种功能的切换&#xff0c;并可通过长按开关…

音频常用测试参数(一)

一、总谐波失真&#xff08;THDN&#xff09; 总谐波失真指音频信号源通过功率放大器时&#xff0c;由于非线性元件所引起的输出信号比输入信号多出的额外谐波成份。谐波失真是由于系统不是完全线性造成的&#xff0c;我们用新增加总谐波成份的均方根与原来信号有效值的百分比来…

2.5《Python3 网络爬虫开发实战》学习之实例实战1

目录 1 实战内容 2 确定思路 3 代码实操 3.1 实现一个个网页的爬取 3.2 爬取每一个网页的电影详情页url ​编辑 3.3 连接链接&#xff0c;针对每个详情页链接进行爬取、汇总内容 3.4 存储在txt文件中 4 结尾&#xff1a;整体代码 1 实战内容 爬取Scrape | Movie中所有…

板块一 Servlet编程:第七节 ServletContext对象全解与Servlet三大域对象总结 来自【汤米尼克的JAVAEE全套教程专栏】

板块一 Servlet编程&#xff1a;第七节 ServletContext对象全解与Servlet三大域对象总结 一、什么是ServletContext对象二、获取ServletContext对象及常用方法&#xff08;1&#xff09;获取 ServletContext 对象&#xff08;2&#xff09;ServletContext对象提供的方法 三、se…

第六十六天 API安全-接口安全阿里云KEY%postmanDVWSXEE鉴权泄露

第66天 API安全-接口安全&阿里云KEY%postman&DVWS&XEE&鉴权&泄露 知识点 1.HTTP类接口-测评 2.RPC类接口-测评 3.Web Service类-测评 参考链接&#xff1a;https://www.jianshu.com/p/e48db27d7c70 内容点&#xff1a; SOAP(Simple Object Access Prot…

【FastAPI】P1 安装与第一个 FastAPI 应用

目录 FastAPI 安装第一个 FastAPI 应用代码拆解分析 FastAPI 安装 FastAPI 是用于快速构建 API 的 web 框架&#xff0c;依赖 Python 3.8 及更高版本。使用 pip 命令安装 fastapi&#xff1a; pip install fastapi安装异步处理 ASGI 的服务器 Uvicorn&#xff1a; pip insta…

dubbo源码中设计模式——注册中心中工厂模式的应用

工厂模式的介绍 工厂模式提供了一种创建对象的方式&#xff0c;而无需指定要创建的具体类。 工厂模式属于创建型模式&#xff0c;它在创建对象时提供了一种封装机制&#xff0c;将实际创建对象的代码与使用代码分离。 应用场景&#xff1a;定义一个创建对象的接口&#xff0…