diff --git a/spring-cloud-alibaba-dependencies/pom.xml b/spring-cloud-alibaba-dependencies/pom.xml
index 1f92155b..683d0ac4 100644
--- a/spring-cloud-alibaba-dependencies/pom.xml
+++ b/spring-cloud-alibaba-dependencies/pom.xml
@@ -18,7 +18,7 @@
Spring Cloud Alibaba Dependencies
- 1.6.2
+ 1.6.3
3.1.0
0.7.1
1.1.1
diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-spring-cloud-gateway-example/src/main/resources/application.yaml b/spring-cloud-alibaba-examples/sentinel-example/sentinel-spring-cloud-gateway-example/src/main/resources/application.yaml
index a3304e39..709113d9 100644
--- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-spring-cloud-gateway-example/src/main/resources/application.yaml
+++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-spring-cloud-gateway-example/src/main/resources/application.yaml
@@ -36,6 +36,8 @@ spring:
scg.fallback:
mode: redirect
redirect: http://www.taobao.com
+ scg:
+ order: -100
# response-status: 444
# response-body: 1234
# content-type: text/plain
diff --git a/spring-cloud-alibaba-sentinel-gateway/src/main/java/com/alibaba/cloud/sentinel/gateway/ConfigConstants.java b/spring-cloud-alibaba-sentinel-gateway/src/main/java/com/alibaba/cloud/sentinel/gateway/ConfigConstants.java
index bd1e2c4e..f06ad272 100644
--- a/spring-cloud-alibaba-sentinel-gateway/src/main/java/com/alibaba/cloud/sentinel/gateway/ConfigConstants.java
+++ b/spring-cloud-alibaba-sentinel-gateway/src/main/java/com/alibaba/cloud/sentinel/gateway/ConfigConstants.java
@@ -22,6 +22,7 @@ package com.alibaba.cloud.sentinel.gateway;
public interface ConfigConstants {
String APP_TYPE_ZUUL_GATEWAY = "12";
+ String APP_TYPE_SCG_GATEWAY = "11";
String ZUUl_PREFIX = "spring.cloud.sentinel.zuul";
diff --git a/spring-cloud-alibaba-sentinel-gateway/src/main/java/com/alibaba/cloud/sentinel/gateway/scg/SentinelGatewayProperties.java b/spring-cloud-alibaba-sentinel-gateway/src/main/java/com/alibaba/cloud/sentinel/gateway/scg/SentinelGatewayProperties.java
index 034221e9..21be002a 100644
--- a/spring-cloud-alibaba-sentinel-gateway/src/main/java/com/alibaba/cloud/sentinel/gateway/scg/SentinelGatewayProperties.java
+++ b/spring-cloud-alibaba-sentinel-gateway/src/main/java/com/alibaba/cloud/sentinel/gateway/scg/SentinelGatewayProperties.java
@@ -18,6 +18,7 @@ package com.alibaba.cloud.sentinel.gateway.scg;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;
+import org.springframework.core.Ordered;
import com.alibaba.cloud.sentinel.gateway.ConfigConstants;
import com.alibaba.cloud.sentinel.gateway.FallbackProperties;
@@ -31,6 +32,8 @@ public class SentinelGatewayProperties {
@NestedConfigurationProperty
private FallbackProperties fallback;
+ private Integer order = Ordered.HIGHEST_PRECEDENCE;
+
public FallbackProperties getFallback() {
return fallback;
}
@@ -40,4 +43,11 @@ public class SentinelGatewayProperties {
return this;
}
+ public Integer getOrder() {
+ return order;
+ }
+
+ public void setOrder(Integer order) {
+ this.order = order;
+ }
}
\ No newline at end of file
diff --git a/spring-cloud-alibaba-sentinel-gateway/src/main/java/com/alibaba/cloud/sentinel/gateway/scg/SentinelSCGAutoConfiguration.java b/spring-cloud-alibaba-sentinel-gateway/src/main/java/com/alibaba/cloud/sentinel/gateway/scg/SentinelSCGAutoConfiguration.java
index 1a8e6835..b7693f38 100644
--- a/spring-cloud-alibaba-sentinel-gateway/src/main/java/com/alibaba/cloud/sentinel/gateway/scg/SentinelSCGAutoConfiguration.java
+++ b/spring-cloud-alibaba-sentinel-gateway/src/main/java/com/alibaba/cloud/sentinel/gateway/scg/SentinelSCGAutoConfiguration.java
@@ -45,7 +45,6 @@ import org.springframework.web.server.ServerWebExchange;
import com.alibaba.cloud.sentinel.gateway.ConfigConstants;
import com.alibaba.cloud.sentinel.gateway.FallbackProperties;
-import com.alibaba.csp.sentinel.adapter.gateway.common.SentinelGatewayConstants;
import com.alibaba.csp.sentinel.adapter.gateway.sc.SentinelGatewayFilter;
import com.alibaba.csp.sentinel.adapter.gateway.sc.callback.BlockRequestHandler;
import com.alibaba.csp.sentinel.adapter.gateway.sc.callback.GatewayCallbackManager;
@@ -94,7 +93,7 @@ public class SentinelSCGAutoConfiguration {
private void initAppType() {
System.setProperty(SentinelConfig.APP_TYPE,
- String.valueOf(SentinelGatewayConstants.APP_TYPE_GATEWAY));
+ String.valueOf(ConfigConstants.APP_TYPE_SCG_GATEWAY));
}
private void initFallback() {
@@ -149,8 +148,10 @@ public class SentinelSCGAutoConfiguration {
@Order(-1)
@ConditionalOnMissingBean
public SentinelGatewayFilter sentinelGatewayFilter() {
- logger.info("[Sentinel SpringCloudGateway] register SentinelGatewayFilter");
- return new SentinelGatewayFilter();
+ logger.info(
+ "[Sentinel SpringCloudGateway] register SentinelGatewayFilter with order: {}",
+ gatewayProperties.getOrder());
+ return new SentinelGatewayFilter(gatewayProperties.getOrder());
}
}
diff --git a/spring-cloud-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel/custom/SentinelAutoConfiguration.java b/spring-cloud-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel/custom/SentinelAutoConfiguration.java
index 701cc567..a3b435bd 100644
--- a/spring-cloud-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel/custom/SentinelAutoConfiguration.java
+++ b/spring-cloud-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel/custom/SentinelAutoConfiguration.java
@@ -152,6 +152,7 @@ public class SentinelAutoConfiguration {
}
@Bean
+ @ConditionalOnMissingBean
public SentinelDataSourceHandler sentinelDataSourceHandler(
DefaultListableBeanFactory beanFactory, SentinelProperties sentinelProperties,
Environment env) {
diff --git a/spring-cloud-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel/feign/SentinelContractHolder.java b/spring-cloud-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel/feign/SentinelContractHolder.java
index 64400cf3..cabd7c20 100644
--- a/spring-cloud-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel/feign/SentinelContractHolder.java
+++ b/spring-cloud-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel/feign/SentinelContractHolder.java
@@ -25,7 +25,7 @@ import feign.MethodMetadata;
/**
*
- * Using static field {@link SentinelContractHolder#metadataMap} to hold
+ * Using static field {@link SentinelContractHolder#METADATA_MAP} to hold
* {@link MethodMetadata} data
*
* @author Jim
@@ -38,7 +38,7 @@ public class SentinelContractHolder implements Contract {
* map key is constructed by ClassFullName + configKey. configKey is constructed by
* {@link feign.Feign#configKey}
*/
- public final static Map metadataMap = new HashMap();
+ public final static Map METADATA_MAP = new HashMap();
public SentinelContractHolder(Contract delegate) {
this.delegate = delegate;
@@ -47,7 +47,7 @@ public class SentinelContractHolder implements Contract {
@Override
public List parseAndValidatateMetadata(Class> targetType) {
List metadatas = delegate.parseAndValidatateMetadata(targetType);
- metadatas.forEach(metadata -> metadataMap
+ metadatas.forEach(metadata -> METADATA_MAP
.put(targetType.getName() + metadata.configKey(), metadata));
return metadatas;
}
diff --git a/spring-cloud-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel/feign/SentinelInvocationHandler.java b/spring-cloud-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel/feign/SentinelInvocationHandler.java
index 53ad6944..ef8c6c33 100644
--- a/spring-cloud-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel/feign/SentinelInvocationHandler.java
+++ b/spring-cloud-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel/feign/SentinelInvocationHandler.java
@@ -90,7 +90,7 @@ public class SentinelInvocationHandler implements InvocationHandler {
// only handle by HardCodedTarget
if (target instanceof Target.HardCodedTarget) {
Target.HardCodedTarget hardCodedTarget = (Target.HardCodedTarget) target;
- MethodMetadata methodMetadata = SentinelContractHolder.metadataMap
+ MethodMetadata methodMetadata = SentinelContractHolder.METADATA_MAP
.get(hardCodedTarget.type().getName()
+ Feign.configKey(hardCodedTarget.type(), method));
if (methodMetadata == null) {