1.从官方fork代码到自己的仓库,克隆到本地并加载到 IDEA
这里我使用的是码云仓库,github比较慢
sentinel码云:sentinel码云
2.拉取master分支,进入idea后先install一遍,看是否正常
3.修改思路:推送到nacos或zookeeper的代码写在sentinel-dashboard的test目录下,现在要推送至nacos则把nacos的复制到主项目下来,并替换掉默认的规则推送策略
把该目录下的所有文件复制到主工程的rule目录下
com.alibaba.csp.sentinel.dashboard.rule.nacos–>com.alibaba.csp.sentinel.dashboard.rule
4.复制完成后,接下来开始替换默认的规则推送
com.alibaba.csp.sentinel.dashboard.controller.v2.FlowControllerV2
具体替换的名字,去刚才复制进来的nacos下面去找
替换后如下:
@Autowired
@Qualifier("flowRuleNacosProvider")
private DynamicRuleProvider<List<FlowRuleEntity>> ruleProvider;
@Autowired
@Qualifier("flowRuleNacosPublisher")
private DynamicRulePublisher<List<FlowRuleEntity>> rulePublisher;
5.修改sidebar.html,使保存的接口走v2
src/main/webapp/resources/app/scripts/directives/sidebar/sidebar.html
<!--<li ui-sref-active="active" ng-if="!entry.isGateway">
<a ui-sref="dashboard.flowV1({app: entry.app})">
<i class="glyphicon glyphicon-filter"></i> 流控规则</a>
</li>-->
<li ui-sref-active="active" ng-if="!entry.isGateway">
<a ui-sref="dashboard.flow({app: entry.app})">
<i class="glyphicon glyphicon-filter"></i> 流控规则</a>
</li>
6.nacos新建个命名空间,专门存sentinel的配置
7.sentinel-dashboard中添加nacos的地址配置
8.打jar包启动即可,此种改法在非gateway上可用,gateway限流上不可用
#简单启动脚本
java -Xms1024m -Xmx1024m -Xss512k -XX:+UseG1GC -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar
#带日志
java -Xms1024m -Xmx1024m -Xss512k -XX:+UseG1GC -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar > D://data/sentinel/sentinel.log 2>&1 &
参考博客:Spring Cloud Alibaba系列(六)sentinel的实际应用
9.客户端连接未测试,附配置截图