SpringClouldAlibaba 之 Sentinel流控规则同步到nacos(并重新生成镜像)

Sentinel配置规则持久化至Nacos 文中使用的nacos版本1.4.2、sentinel版本1.8.3 问题 当集成了Sentinel的客户端应用重启之后,在控制台配置的规则全部都没有了,如果需要上生产环境需要将规则配置进行持久化。下面就来实现Sentinel规则配置持久化。 添加Maven依赖 需要持久化至nacos就需要添加相关Maven依赖 <!-- Sentinel Datasource 依赖 --> <dependency> <groupId>com.alibaba.cloud<. 阅读详情

前言

上一篇我们将流控规则配置到了nacos 让服务启动时拉取流控规则从而实现持久化但是是有一个缺陷的,毕竟在nacos中维护这个流控规则不太友好,毕竟sentinel为我们提供了可视化界面,我们只需要修改修改 sentinel-dashboard这个工程然后重新制作一个镜像(docker)就可以了

首先我们需要去下载 dashboard 的源码

官方文档地址

因为是在github上网不好下载有点慢这里我放一个 gitee上的地址 gitee.com/mirrors/Sen… (这个和github那个是一样一天一次同步它)

改造第一步

注意: 官方其实已经为我们封装好了代码就在测试包下

我们把这几个配置类复制到上面同目录下去(这个nacos 是我创建的包)

下面我们只需要去 NacosConfig中去小小改动下 配置nacos的地址

@Configuration
public class NacosConfig {
    @Value("${nacos.addr}")
    private  String adders;//配置nacos的地址
    @Bean
    public Converter<List<FlowRuleEntity>, String> flowRuleEntityEncoder() {
        return JSON::toJSONString;
    }

    @Bean
    public Converter<String, List<FlowRuleEntity>> flowRuleEntityDecoder() {
        return s -> JSON.parseArray(s, FlowRuleEntity.class);
    }

    @Bean
    public ConfigService nacosConfigService() throws Exception {
        return ConfigFactory.createConfigService(adders); //创建链接
    }
}

配置推送在 FlowControllerV1类中

为什么改它而不是v2 呢因为我们在添加流控规则时打开f12 看到走的方法是v1的

添加流控规则时同步推送到nacos

private CompletableFuture<Void> publishRules(String app, String ip, Integer port) {
    List<FlowRuleEntity> rules = repository.findAllByMachine(MachineInfo.of(app, ip, port));
    try {
        rulePublisher.publish(app,rules);
    }catch (Exception e){
        logger.info("同步失败");
    }
    return sentinelApiClient.setFlowRuleOfMachineAsync(app, ip, port, rules);
}

注意如果需要修改持久化文件的组或者名称需要在 NacosConfigUtil中指定如果不指定就是默认的

public static final String GROUP_ID = "SENTINEL_GROUP";
public static final String FLOW_DATA_ID_POSTFIX = "-flow-rules";

ok 下面我们进行测试 在 控制面板添加流控规则

可以看到添加成功

下面我们去nacos中去看看

我们把这个数据贴出去格式化一下

可以看到数据同步没有问题😁😁😁😁
下面我们制作一下 docker 镜像 直接在ide里面先打一个jar包

将jar 上传到 liunx服务器

下面我们编写一下 docker file

FROM java:8
ARG JAR_FILE
VOLUME /tmp
EXPOSE 8858 ## 注意这里 端口要和项目的启动端口一致
ENTRYPOINT ["java","-jar","/sentinel-dashboard.jar"]

docker build -t sentinel-dashboard . 最后这个点指的是当前目录下

然后我们使用docker images查看下镜像

最后我们启动一下 容器

docker run --name mysentinel  -p 8868:8858 -d sentinel-dashboard
docker start mysentinel 

注意这里有个小坑

这里提示我们IPV4 被禁用了(外部访问不到)
我们需要去 /etc/sysctl.conf
文件中添加 net.ipv4.ip_forward=1
最后重启一下网络服务 systemctl restart network

外部也可以访问到了 启动成功..

实践是检验真理的唯一准则,感兴趣的可以去试试呀!

Sentinel 规则持久化到 Nacos 实战 前面系列文章我们对 Sentinel 的作用及工作流程源码进行了分析,我们知道 Sentinel 的众多功能都是通过规则配置完成的,但是我们前面在演示的时候,发现 Sentinel 一重启,配置的规则就没有了,这是因为规则存储在内存中,本篇我们来实现 Sentinel 规则持久化到 Nacos 中。 阅读详情

相关推荐

具身智能端到端大模型VLA (Vision Language Action)

在语言为条件的机器人任务中,策略必须具备理解语言指令、视觉感知环境并生成适当动作的能力,这就需要VLA的。例如,在自动驾驶领域,传统的做法是将感知、预测、规划等步骤分开处理,而VLA则试图用一个统一的框架来替代这种分立的方法。另外,VLA的模型对于算力的需求很大,单片AI算力1000Tops的Thor大概率会延期发布,加上英伟达芯片的量产时间与成本挑战,以及在国内的应用情况,对车企而言是个大问题。以谷歌DeepMind推出的RT-2为例,该模型可以在新的物体、背景和环境中表现出显著改善的性能。

具身智能机器人 1万+

sentinel安装以及同步限流规则持久化到nacos

【代码】sentinel安装以及同步限流规则持久化到nacos。

qq_28358461的博客 589

AI订单流异常检测:精准识别与闭环处置

本文系统阐述了订单流AI驱动的可视化与异常解释系统的构建策略。核心包括:1)多维度融合的异常检测技术,结合数据指纹、行为图谱和时序分析实现精准识别;2)分级分类与自动化处置机制,通过规则矩阵和风险熵值量化进行智能决策;3)基于SHAP/LIME的可解释性技术,提升决策透明度;4)千万级数据训练要求,确保模型达到87%以上的F1值。系统采用Flink+PAI实时计算架构,支持从异常检测到根因分析的完整闭环,为电商、金融等领域的订单风险管理提供智能化解决方案。

2401_83000568的博客 1360

Sentinel规则持久化到Nacos教程

如何将Sentinel规则持久化到Nacos

小薯条的博客 3934

【LVGL】学习笔记--(3)界面切换以及显示优化

界面切换和帧率优化

sinat_33408502的博客 1万+

13. MIC配置

恒玄BES2700,支持3个MIC。

雪飞_海 926

Sentinel 规则持久化到 Nacos

当你在 sentinel 控制台中,无论增加规则,还是修改规则,都会同步到 nacos;pull模式:控制台将配置的规则推送到Sentinel客户端,而客户端会将配置规则保存在本地文件或数据库中。然后浏览器访问:http://localhost:8090 , 最开始什么都没有,然后访问你自己的项目的任意一个要限流的接口,则 左侧会出现对于的 服务名称。注意,一定要点 带 2 的,只有带 2 的才能推送到 nacos,在 流控规则 选项中添加也不行,只能点击 蓝色方框 才能推送到 nacos。

每日一记,每周一结。 1573

如何设计提示词来减少 AI 的幻觉问题?

如何设计提示词来减少 AI 的幻觉问题?

我哎GIS博客 2471

sentinel规则持久化到nacos

增加nacos代码,新建nacos包增加nacosconfig及util、各个规则的拉取监听、推送监听类。identity.js 文件中FlowServiceV1改为FlowServiceV2。对应nacosConfig中的属性,在nacosService方法中使用。到此sentinel规则配置持久化及配置双向同步已完成。文件格式与namespace需与数据库中一致否则读取不到。

m0_37885618的博客 373

AgentScope实战训练营- Java从零开始快速构建Agent完整教程

本文基于阿里巴巴开源的 AgentScope Java 框架,从零开始手把手带你构建 AI 智能体应用。内容涵盖环境搭建、基础对话、工具调用、结构化输出、多Agent流水线、Hook可观测性、会话持久化、MCP协议、RAG知识库集成、多模态工具、技能系统、Spring Boot Web部署等21个核心模块,附带完整可运行代码示例,帮助Java开发者快速掌握Agent开发全流程。

program哲学 863

合肥工业大学嵌入式系统原理实验报告

GPKDAT 的6、7引脚设置低电平,设置GPKDAT = 0x30则34灯亮12灯灭,GPKDAT 的4、5、6、7引脚全为高电平,设置GPKDAT = 0xf0,则led灯全灭。注意在烧写时要连接主机后面的USB接口,烧写完成后,要关闭开发板电源,将S2拨动开关置于NAND位置,然后重新开启开发板电源, 则开发板运行刚刚烧入的裸机程序。实验修改要求:在延时不变的条件下,将原程序中四个LED全亮,然后全灭的显示状态,修改为“四个全亮,然后1和2亮(3和4灭),然后3和4亮(1和2灭),最后全灭”。

Martin-share的博客 3098

Sentinel规则持久化到Nacos

Sentinel规则持久化到Nacos案例

weixin_43410352的博客 1861

200、从反激到LLC:工程师的成长之路

文章摘要: 本文以工程师视角探讨从反激式到LLC电源设计的思维转变。通过48V通信电源故障案例,揭示LLC谐振电容ESR温度特性引发的隐患,强调LLC需精确计算与测试。对比反激与LLC的核心差异:反激需控制寄生参数(如漏感尖峰、电容ESR),而LLC的关键在于频率响应和死区时间优化。作者提出三大思维转变:从匝比计算转向增益曲线分析,从时域波形观察转向频域频谱诊断,从元件更换转向参数调整。最后给出实战建议,包括建立故障库、关注元件参数细节及示波器调试技巧,指出工程师需从"控制"思维升级为"谐振"思维,实现技术

Jack010169的博客 322

springcloudalibaba架构(11):Sentinel规则持久化至Nacos

通过Dashboard来为每个Sentinel客户端设置各种各样的规则,但是这里有一个问题,就是这些规则默认时存在内存中的,极不稳定,所以需要将其持久化。我们可以将规则持久化到磁盘文件,也可以持久化到nacos,zookeeper等注册配置中心。......

不积跬步,无以至千里 997

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Sentinel 实战:如何接入 Nacos 实现规则持久化?

Sentinel :如何接入 Nacos 实现规则持久化

zgz15515397650的博客 3783

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Sentinel控制台配置 持久化到nacos

因为项目使用的是Spring-cloud-alibaba,Sentinel支持和nacos整合,就持久化到nacos数据库中,同时sentinel还能读取nacos中做的流控规则。Sentinel: Sentinel 是什么 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。小惊喜:sentinel中有和nacos中对接的源码,只不过没有使用。1、改成 默认后台使用sentinel对接nacos,而不是存到内存,只实现了本地nacos并且需要默认配置,需要支持自定义配置。增加nacos配置信息。

liulangshusheng2012的专栏 2220

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Sentinel-规则管理及推送模式(pull&push)

本地文件数据源会定时轮询文件的变更,读取规则。这样我们既可以在应用本地直接修改文件来更新规则,也可以通过 Sentinel 控制台推送规则。如远程配置中心(ZooKeeper, Nacos),推送操作不应由 Sentinel 客户端进行,而应该经控制台统一管理,直接推送。该模式的数据源(如本地文件、RDBMS 等)一般可写入。使用时需在客户端注册数据源:将对应读数据源注册至对应的。部署多个控制台实例时,通常需要将规则存至 DB 中,规则变更后同步向配置中心推送规则。简单,不会引入新的依赖。

JavaEdge全是干货的技术号 2576

【sentinel流量卫兵配置持久化到Nacos】

控制台配置的参数,默认持久化到内存的,因此服务一旦重新启动后,配置就会丢失,需要重新配置。各位可以在默认情况下随意配置一个,然后重启服务即可验证。这里持久化通过nacos配置中心进行。

笔痕墨影 1640

限流神器Sentinel与nacos数据双向同步

在seintinel-dashboard要获取nacos配置中的配置数据,就是实现:DynamicRuleProvider接口,最后最重要的步骤是在你自已的应用里bootstrap.yaml中sentinel配置:下面是我的配置,主要是看。注意在你的应用pom中增加依赖库,

fcclzydouble的博客 1603

sentinel配置自定义更新到nacos解决方案

网上很多改造dashboard源码直接和nacos同步,然后sentinel再和nacos同步的方案但是总觉得有如下问题:此功能既然已经再test代码了,也就是以后也必定会发布,此时固定版本改造,等发布了新版,如果还没发布此功能,又得重新找一个对应得自定义改造得版本实在是麻烦,何不制作一个小代价的更新版本,既合适新版升级,又代价不太大的。

qq_41190902的博客 1776

sentinel源码解析(一)

主要内容 该文章主要根据解析sentinel源码分析点有: sentinel-dashboard创建规则保存在哪里? sentinel-dashboard同应用之间的交互关系是怎样的? 应用重启之后,sentinel-dashboard控制台的规则不见了? sentinel-dashboard创建规则保存在哪里? 打开sentinel-dashboard控制台 新建一个限流规则 源码分析 根据新建限流规则URL的地址,打开sentinel-dashboard的源码,找到对应的入口:

LiaoHongHB的博客 806

Sentinel动态推拉数据持久化同步到Nacos

前言 在我们使用Sentinel做熔断限流等操作时,一些设置好的配置默认是存放在当前服的内存中的,那么也就意味着每次重启服务,这些配置好的配置就会消失。在我们搭建微服务架构做测试的时候不是很友好。大家都知道Sentinel提供了一些持久化方式,如持久化到Nacos、本地JSON文件。这种方式虽然能解决持久化的操作,但是不能自动同步更新,也就是持久化配置写成什么样就是什么样,在程序启动后,无法动态更新到持久化存储中!当然能做到持久化Nacos或者本地JSON已经很不错了!如果作用做到这一步那么请见Sentin

程序员劝退师的博客 1288

【Sentinel、Nacos】Sentinel同步修改到Nacos中

Sentinel 服务持久化到Nacos并同步

apple_csdn的博客 1909
上一篇: Spring AOP详解之面向切面编程
下一篇: 里P8用这5大核心技术+10大高级框架+200个案例构建亿级流量并发
Java技术那些事儿
博客等级 码龄5年 2306粉丝 2584原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值