# sentinel-dashboard **Repository Path**: vvhard/sentinel-dashboard ## Basic Information - **Project Name**: sentinel-dashboard - **Description**: 改造sentinel dashboard,规则持久化到Nacos - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 3 - **Created**: 2020-11-26 - **Last Updated**: 2022-04-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # sentinel-dashboard ## 介绍 改造sentinel dashboard,规则持久化到Nacos ## 说明 主要通过改造DynamicRuleProvider和DynamicRulePublisher实现。 自定义的规则实现上述两个接口,重写对应的方法,从Nacos配置中心中拉取对应的规则,展示在控制台或将Sentinel dashboard控制台的规则推送到Nacos配置中心。 将对应的Publisher和Provider通过自动注入的方式注入到对应的Controller中。 ## 注意 ### 1.有可能推送的Entity结构与从Nacos拉取的配置结构不对应,缺少字段导致不能在Sentinel dashboard中显示。解决方式:使用自定义的Entity或者保证拉取和推送的规则Entity保持一致。 ### 2.Sentinel dashboard重启后,控制台添加规则后覆盖了原来的第一个规则。原因:InMemoryRuleRepositoryAdapter 中的save方法会为规则entity设置一个id,实现如下 private static AtomicLong ids = new AtomicLong(0); @Override protected long nextId() { return ids.incrementAndGet(); } 每次重启后id会从0开始。解决方式:重写id生成规则,可以先判空再处理或者改造推送到Nacos的规则entity不推送id属性。 ## 2021-03-05 添加Readme,距创建仓库已过去3个多月,当时的源码改动和改造过程遇到的坑已不太记得。