zhousiliang163 12c67d4770 Improve ZookeeperDataSource to deal with bad connection when initializing (#597) | vor 5 Jahren | |
---|---|---|
.. | ||
src | vor 5 Jahren | |
README.md | vor 6 Jahren | |
pom.xml | vor 5 Jahren |
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.