Skip to content

Commit

Permalink
Update Nacos SDK version to 0.8 and update Nacos namespace demo (#474)
Browse files Browse the repository at this point in the history
  • Loading branch information
yanlinly authored and sczyh30 committed Jan 31, 2019
1 parent f27d7a4 commit 1368154
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,18 @@
package com.alibaba.csp.sentinel.demo.datasource.nacos;

import java.util.List;
import java.util.Properties;

import com.alibaba.csp.sentinel.datasource.ReadableDataSource;
import com.alibaba.csp.sentinel.datasource.nacos.NacosDataSource;
import com.alibaba.csp.sentinel.slots.block.flow.FlowRule;
import com.alibaba.csp.sentinel.slots.block.flow.FlowRuleManager;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.nacos.api.PropertyKeyConst;

/**
* This demo demonstrates how to use Nacos as the data source of Sentinel rules.
*
* Before you start, you need to start a Nacos server in local first, and then
* use {@link NacosConfigSender} to publish initial rule configuration to Nacos.
*
Expand All @@ -35,22 +36,46 @@
public class NacosDataSourceDemo {

private static final String KEY = "TestResource";
// nacos server ip
private static final String remoteAddress = "localhost";
// nacos group
private static final String groupId = "Sentinel:Demo";
// nacos dataId
private static final String dataId = "com.alibaba.csp.sentinel.demo.flow.rule";
// if change to true, should be config NACOS_NAMESPACE_ID
private static boolean isDemoNamespace = false;
// fill your namespace id,if you want to use namespace. for example: 0f5c7314-4983-4022-ad5a-347de1d1057d,you can get it on nacos's console
private static final String NACOS_NAMESPACE_ID = "${namespace}";

public static void main(String[] args) {
loadRules();
if (isDemoNamespace) {
loadMyNamespaceRules();
} else {
loadRules();
}

// Assume we config: resource is `TestResource`, initial QPS threshold is 5.
FlowQpsRunner runner = new FlowQpsRunner(KEY, 1, 100);
runner.simulateTraffic();
runner.tick();
}

private static void loadRules() {
final String remoteAddress = "localhost";
final String groupId = "Sentinel:Demo";
final String dataId = "com.alibaba.csp.sentinel.demo.flow.rule";

ReadableDataSource<String, List<FlowRule>> flowRuleDataSource = new NacosDataSource<>(remoteAddress, groupId, dataId,
source -> JSON.parseObject(source, new TypeReference<List<FlowRule>>() {}));
source -> JSON.parseObject(source, new TypeReference<List<FlowRule>>() {
}));
FlowRuleManager.register2Property(flowRuleDataSource.getProperty());
}

private static void loadMyNamespaceRules() {
Properties properties = new Properties();
properties.put(PropertyKeyConst.SERVER_ADDR, remoteAddress);
properties.put(PropertyKeyConst.NAMESPACE, NACOS_NAMESPACE_ID);

ReadableDataSource<String, List<FlowRule>> flowRuleDataSource = new NacosDataSource<>(properties, groupId, dataId,
source -> JSON.parseObject(source, new TypeReference<List<FlowRule>>() {
}));
FlowRuleManager.register2Property(flowRuleDataSource.getProperty());
}

}
2 changes: 1 addition & 1 deletion sentinel-extension/sentinel-datasource-nacos/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<packaging>jar</packaging>

<properties>
<nacos.version>0.6.2</nacos.version>
<nacos.version>0.8.0</nacos.version>
</properties>

<dependencies>
Expand Down

0 comments on commit 1368154

Please sign in to comment.