Browse Source

Upgrade apollo-client to 1.3.0 and add support for removing listener in sentinel-datasource-apollo (#562)

- Add to unsubscribe config change event
master
Neptune Eric Zhao 5 years ago
parent
commit
7367da6936
2 changed files with 8 additions and 4 deletions
  1. +1
    -1
      sentinel-extension/sentinel-datasource-apollo/pom.xml
  2. +7
    -3
      sentinel-extension/sentinel-datasource-apollo/src/main/java/com/alibaba/csp/sentinel/datasource/apollo/ApolloDataSource.java

+ 1
- 1
sentinel-extension/sentinel-datasource-apollo/pom.xml View File

@@ -12,7 +12,7 @@
<artifactId>sentinel-datasource-apollo</artifactId> <artifactId>sentinel-datasource-apollo</artifactId>


<properties> <properties>
<apollo.version>1.0.0</apollo.version>
<apollo.version>1.3.0</apollo.version>
</properties> </properties>


<dependencies> <dependencies>


+ 7
- 3
sentinel-extension/sentinel-datasource-apollo/src/main/java/com/alibaba/csp/sentinel/datasource/apollo/ApolloDataSource.java View File

@@ -20,6 +20,7 @@ import com.google.common.collect.Sets;
* When the rule is changed in Apollo, it will take effect in real time. * When the rule is changed in Apollo, it will take effect in real time.
* *
* @author Jason Song * @author Jason Song
* @author Haojun Ren
*/ */
public class ApolloDataSource<T> extends AbstractDataSource<String, T> { public class ApolloDataSource<T> extends AbstractDataSource<String, T> {


@@ -27,6 +28,8 @@ public class ApolloDataSource<T> extends AbstractDataSource<String, T> {
private final String flowRulesKey; private final String flowRulesKey;
private final String defaultFlowRuleValue; private final String defaultFlowRuleValue;


private ConfigChangeListener configChangeListener;

/** /**
* Constructs the Apollo data source * Constructs the Apollo data source
* *
@@ -72,7 +75,7 @@ public class ApolloDataSource<T> extends AbstractDataSource<String, T> {
} }


private void initializeConfigChangeListener() { private void initializeConfigChangeListener() {
config.addChangeListener(new ConfigChangeListener() {
configChangeListener = new ConfigChangeListener() {
@Override @Override
public void onChange(ConfigChangeEvent changeEvent) { public void onChange(ConfigChangeEvent changeEvent) {
ConfigChange change = changeEvent.getChange(flowRulesKey); ConfigChange change = changeEvent.getChange(flowRulesKey);
@@ -82,7 +85,8 @@ public class ApolloDataSource<T> extends AbstractDataSource<String, T> {
} }
loadAndUpdateRules(); loadAndUpdateRules();
} }
}, Sets.newHashSet(flowRulesKey));
};
config.addChangeListener(configChangeListener, Sets.newHashSet(flowRulesKey));
} }


@Override @Override
@@ -92,6 +96,6 @@ public class ApolloDataSource<T> extends AbstractDataSource<String, T> {


@Override @Override
public void close() throws Exception { public void close() throws Exception {
// nothing to destroy
config.removeChangeListener(configChangeListener);
} }
} }

Loading…
Cancel
Save