From 00399747373f534637cfe2a031912a535b4d6439 Mon Sep 17 00:00:00 2001 From: fangjian0423 Date: Tue, 30 Jul 2019 01:22:57 +0800 Subject: [PATCH] upgrade sentinel to 1.6.3 & sync code in finchley --- spring-cloud-alibaba-dependencies/pom.xml | 2 +- .../src/main/resources/application.yaml | 2 ++ .../cloud/sentinel/gateway/ConfigConstants.java | 1 + .../gateway/scg/SentinelGatewayProperties.java | 10 ++++++++++ .../gateway/scg/SentinelSCGAutoConfiguration.java | 9 +++++---- .../sentinel/custom/SentinelAutoConfiguration.java | 1 + .../cloud/sentinel/feign/SentinelContractHolder.java | 6 +++--- .../sentinel/feign/SentinelInvocationHandler.java | 2 +- 8 files changed, 24 insertions(+), 9 deletions(-) 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) {