Sentinel/sentinel-extension/sentinel-datasource-zookeeper
Eric Zhao 0060e8042a Refactor Sentinel data source hierarchy
- Spilt DataSource into two types: ReadableDataSource and WritableDataSource
- The AbstractDataSource now is read-only
- Refactor the file data source for writable implementation
- Rename: ConfigParser -> Converter (represents both encoder `T -> S` and decoder `S -> T`)
- Some other refinement

Signed-off-by: Eric Zhao <sczyh16@gmail.com>
2018-09-04 11:09:42 +08:00
..
src Refactor Sentinel data source hierarchy 2018-09-04 11:09:42 +08:00
README.md Refactor Sentinel data source hierarchy 2018-09-04 11:09:42 +08:00
pom.xml Bump version to 0.2.0-SNAPSHOT 2018-08-08 20:45:25 +08:00

README.md

Sentinel DataSource ZooKeeper

Sentinel DataSource ZooKeeper provides integration with ZooKeeper so that ZooKeeper can be the dynamic rule data source of Sentinel. The data source uses push model (listener).

To use Sentinel DataSource ZooKeeper, you should add the following dependency:

<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-datasource-zookeeper</artifactId>
    <version>x.y.z</version>
</dependency>

Then you can create an ZookeeperDataSource and register to rule managers. For instance:

// `path` is the data path in ZooKeeper
ReadableDataSource<String, List<FlowRule>> flowRuleDataSource = new ZookeeperDataSource<>(remoteAddress, path, source -> JSON.parseObject(source, new TypeReference<List<FlowRule>>() {}));
FlowRuleManager.register2Property(flowRuleDataSource.getProperty());

Note: It's not recommended to add a large amount of rules to a single path (has limitation, also leads to bad performance).

We've also provided an example: sentinel-demo-zookeeper-datasource.