第一步:
解压Sentinel-1.8.1.zip,解压完成之后,用idea打开项目下的子项目sentinel-dashboard
第二步:
在sentinel-dashboard项目的pom文件中,添加依赖和修改依赖,找到地方,对这个两个依赖进行修改。
第三步:
将项目中test下面的nacos包复制到java下面的地方。
第四步:
修改代码,nacos下面的
@Configuration
@ConfigurationProperties(prefix = "nacos")
public class NacosConfig {
private String addr;
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
@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(addr);
}
}
第五步:
修改controller下面的vo包下的FlowControllerV2类
@Autowired
@Qualifier("flowRuleNacosProvider")
private DynamicRuleProvider<List<FlowRuleEntity>> ruleProvider;
@Autowired
@Qualifier("flowRuleNacosPublisher")
private DynamicRulePublisher<List<FlowRuleEntity>> rulePublisher;
第六步:
将这个注释放开,前端显示,
第七步:
在application.yml文件中添加这个nacos.addr=localhost:8848
第八步:
打包,需要先点上面的小闪电才可以。然后点击package,接着在target中找到打包的文件。
运行java -jar 文件名;
第九步:
在对应的需要持久化sentinel的微服务中先添加依赖,然后在yml文件里面写对应代码;
<!--持久化依赖--> <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-datasource-nacos</artifactId> </dependency>
需要先运行nacos服务,也需要运行对应的sentinel.jar文件,然后打开sentinel控制台,找到第六步放开的前端代码,多了一个流控规则。添加规则之后,就可以在nacos控制台找到对应的规则。
从上图复制对应的Data Id和Group
这样就得到下面的:
Data Id对应 dataId: shop-orders-flow-rules
Group对应 groupId: SENTINEL_GROUP