41 lines
1.7 KiB
Markdown
41 lines
1.7 KiB
Markdown
# Sentinel DataSource Spring Cloud Config
|
|
|
|
Sentinel DataSource Spring Cloud Config provides integration with Spring Cloud Config
|
|
so that Spring Cloud Config can be the dynamic rule data source of Sentinel.
|
|
|
|
To use Sentinel DataSource Spring Cloud Config, you should add the following dependency:
|
|
|
|
```xml
|
|
<dependency>
|
|
<groupId>com.alibaba.csp</groupId>
|
|
<artifactId>sentinel-datasource-spring-cloud-config</artifactId>
|
|
<version>x.y.z</version>
|
|
</dependency>
|
|
```
|
|
|
|
Then you can create an `SpringCloudConfigDataSource` and register to rule managers.
|
|
For instance:
|
|
|
|
```Java
|
|
ReadableDataSource<String, List<FlowRule>> flowRuleDs = new SpringCloudConfigDataSource<>(ruleKey, s -> JSON.parseArray(s, FlowRule.class));
|
|
FlowRuleManager.register2Property(flowRuleDs.getProperty());
|
|
```
|
|
|
|
To notify the client that the remote config has changed, we could bind a git webhook callback with the
|
|
`com.alibaba.csp.sentinel.datasource.spring.cloud.config.SentinelRuleLocator.refresh` API.
|
|
We may refer to the the sample `com.alibaba.csp.sentinel.datasource.spring.cloud.config.test.SpringCouldDataSourceTest#refresh` in test cases.
|
|
|
|
We offer test cases and demo in the package: `com.alibaba.csp.sentinel.datasource.spring.cloud.config.test`.
|
|
When you are running test cases, please follow the steps:
|
|
|
|
```
|
|
// First, start the Spring Cloud config server
|
|
com.alibaba.csp.sentinel.datasource.spring.cloud.config.server.ConfigServer
|
|
|
|
// Second, start the Spring Cloud config client
|
|
com.alibaba.csp.sentinel.datasource.spring.cloud.config.client.ConfigClient
|
|
|
|
// Third, run the test cases and demo
|
|
com.alibaba.csp.sentinel.datasource.spring.cloud.config.test.SentinelRuleLocatorTests
|
|
com.alibaba.csp.sentinel.datasource.spring.cloud.config.test.SpringCouldDataSourceTest
|
|
``` |