From 0f05d78c37921535e7c904d49289759123e64621 Mon Sep 17 00:00:00 2001 From: mercyblitz Date: Tue, 14 Apr 2020 18:30:59 +0800 Subject: [PATCH] Polish alibaba/spring-cloud-alibaba#1369 : [Feature] Synchronizing source code to Spring Cloud Alibaba greenwich branch --- mvnw | 2 +- pom.xml | 113 +++++++++++++++++- spring-cloud-alibaba-coverage/pom.xml | 2 +- spring-cloud-alibaba-dependencies/pom.xml | 109 ++++++++++++++++- spring-cloud-alibaba-docs/pom.xml | 2 +- .../asciidoc-zh/dependency-management.adoc | 2 +- .../main/asciidoc/dependency-management.adoc | 2 +- .../nacos-config-example/pom.xml | 7 +- .../nacos-discovery-consumer-example/pom.xml | 6 +- .../nacos-discovery-provider-example/pom.xml | 7 +- .../pom.xml | 7 +- .../pom.xml | 7 +- .../nacos-discovery-example/pom.xml | 7 +- .../nacos-gateway-discovery-example/pom.xml | 7 +- .../nacos-gateway-provider-example/pom.xml | 7 +- .../nacos-gateway-example/pom.xml | 7 +- spring-cloud-alibaba-examples/pom.xml | 2 +- .../rocketmq-consume-example/pom.xml | 7 +- .../rocketmq-produce-example/pom.xml | 7 +- .../seata-example/account-service/pom.xml | 5 +- .../seata-example/business-service/pom.xml | 5 +- .../seata-example/order-service/pom.xml | 5 +- .../seata-example/storage-service/pom.xml | 4 +- .../sentinel-core-example/pom.xml | 6 +- .../sentinel-dubbo-api/pom.xml | 5 +- .../sentinel-dubbo-consumer-example/pom.xml | 9 +- .../sentinel-dubbo-provider-example/pom.xml | 9 +- .../sentinel-feign-consumer-example/pom.xml | 7 +- .../src/main/resources/application.yml | 2 + .../sentinel-feign-provider-example/pom.xml | 6 +- .../src/main/resources/application.yml | 2 + .../pom.xml | 6 +- .../sentinel-webflux-example/pom.xml | 7 +- .../sentinel-zuul-example/pom.xml | 6 +- .../pom.xml | 4 +- .../spring-cloud-dubbo-client-sample/pom.xml | 6 +- .../src/main/resources/bootstrap.yaml | 4 +- .../pom.xml | 4 +- .../src/main/resources/bootstrap.yaml | 2 + .../pom.xml | 4 +- .../src/main/resources/bootstrap.yaml | 2 + .../pom.xml | 4 +- .../src/main/resources/bootstrap.yaml | 2 + .../spring-cloud-dubbo-sample-api/pom.xml | 2 +- .../spring-cloud-dubbo-server-sample/pom.xml | 6 +- .../src/main/resources/bootstrap.yaml | 4 +- .../pom.xml | 4 +- .../src/main/resources/bootstrap.yaml | 2 + .../pom.xml | 4 +- .../pom.xml | 4 +- .../src/main/resources/application.yml | 2 + .../spring-cloud-bus-rocketmq-example/pom.xml | 6 +- spring-cloud-alibaba-starters/pom.xml | 2 +- .../pom.xml | 8 +- .../config/ConsulDataSourceProperties.java | 97 +++++++++++++++ .../ConsulDataSourceFactoryBean.java | 91 ++++++++++++++ .../META-INF/sentinel-datasource.properties | 1 + .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../SeataHystrixConcurrencyStrategy.java | 97 ++++++++++++++- .../pom.xml | 2 +- .../endpoint/SentinelHealthIndicator.java | 13 +- .../pom.xml | 2 +- .../spring-cloud-starter-bus-rocketmq/pom.xml | 2 +- .../spring-cloud-starter-dubbo/pom.xml | 2 +- .../dubbo/annotation/DubboTransported.java | 2 +- ...gCloudRegistryConfigPropertyCondition.java | 4 +- ...ebApplicationEnvironmentPostProcessor.java | 4 +- .../DubboServiceMetadataRepository.java | 105 ++++++++++------ .../registry/AbstractSpringCloudRegistry.java | 61 +++++++--- .../pom.xml | 2 +- 74 files changed, 771 insertions(+), 194 deletions(-) create mode 100644 spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/config/ConsulDataSourceProperties.java create mode 100644 spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/factorybean/ConsulDataSourceFactoryBean.java diff --git a/mvnw b/mvnw index 675cb6b0..84073fa2 100755 --- a/mvnw +++ b/mvnw @@ -227,7 +227,7 @@ export MAVEN_CMD_LINE_ARGS WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain echo "Running version check" -VERSION=$( sed '\!//' -e 's!.*$!!' ) +VERSION=$( sed '\!//' -e 's!.*$!!' ) echo "The found version is [${VERSION}]" if echo $VERSION | egrep -q 'M|RC'; then diff --git a/pom.xml b/pom.xml index a4df2134..5cbfdc28 100644 --- a/pom.xml +++ b/pom.xml @@ -8,17 +8,17 @@ org.springframework.cloud spring-cloud-build - 2.1.10.RELEASE + 2.1.11.RELEASE com.alibaba.cloud spring-cloud-alibaba - 2.1.2.BUILD-SNAPSHOT + ${revision} pom Spring Cloud Alibaba Spring Cloud Alibaba - https://github.com/alibaba/spring-cloud-alibaba + https://github.com/alibaba/spring-cloud-alibaba/tree/greenwich @@ -69,12 +69,22 @@ yunzheng yunzheng1228@gmail.com + + theonefx + theonefx + chenxilzx1@gmail.com + Alibaba + https://github.com/theonefx + + + 2.1.2.RELEASE + 2.1.5.RELEASE - 2.1.6.RELEASE + 2.1.7.RELEASE 2.1.5.RELEASE 2.1.5.RELEASE 2.1.5.RELEASE @@ -88,7 +98,7 @@ 1.7.25 - 2.7.4.1 + 2.7.6 4.0.1 @@ -100,6 +110,10 @@ 2.21.0 1.6 0.8.3 + 2.2.1 + 3.1.1 + 1.6 + 1.1.0 @@ -304,7 +318,7 @@ - eclipse/checkstyle-suppressions.xml + ${session.executionRootDirectory}/eclipse/checkstyle-suppressions.xml true true true @@ -411,6 +425,93 @@ + + release + + + + org.apache.maven.plugins + maven-source-plugin + ${maven-source-plugin.version} + + + package + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + ${maven-javadoc-plugin.version} + + + package + + jar + + + + + + + org.apache.maven.plugins + maven-gpg-plugin + ${maven-gpg-plugin.version} + + + verify + + sign + + + + + + + org.codehaus.mojo + flatten-maven-plugin + ${flatten-maven-plugin.version} + + true + resolveCiFriendliesOnly + + + + flatten + process-resources + + flatten + + + + flatten.clean + clean + + clean + + + + + + + + + + sonatype-nexus-snapshots + Sonatype Nexus Snapshots + https://oss.sonatype.org/content/repositories/snapshots/ + + + sonatype-nexus-staging + Nexus Release Repository + https://oss.sonatype.org/service/local/staging/deploy/maven2/ + + + + diff --git a/spring-cloud-alibaba-coverage/pom.xml b/spring-cloud-alibaba-coverage/pom.xml index dbe914f5..d854a71a 100644 --- a/spring-cloud-alibaba-coverage/pom.xml +++ b/spring-cloud-alibaba-coverage/pom.xml @@ -8,7 +8,7 @@ com.alibaba.cloud spring-cloud-alibaba - 2.1.2.BUILD-SNAPSHOT + ${revision} ../pom.xml diff --git a/spring-cloud-alibaba-dependencies/pom.xml b/spring-cloud-alibaba-dependencies/pom.xml index cba1b897..39b5d5d4 100644 --- a/spring-cloud-alibaba-dependencies/pom.xml +++ b/spring-cloud-alibaba-dependencies/pom.xml @@ -4,20 +4,23 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - spring-cloud-dependencies-parent org.springframework.cloud - 2.2.0.RELEASE + spring-cloud-dependencies-parent + 2.1.11.RELEASE com.alibaba.cloud spring-cloud-alibaba-dependencies - 2.1.2.BUILD-SNAPSHOT + ${revision} pom Spring Cloud Alibaba Dependencies Spring Cloud Alibaba Dependencies + + 2.1.2.RELEASE + 1.7.1 3.1.0 1.1.0 @@ -32,7 +35,13 @@ 1.1.0 1.1.8.6 1.1.1 - 1.0.5 + 1.0.6 + + + 2.2.1 + 3.1.1 + 1.6 + 1.1.0 @@ -93,6 +102,12 @@ ${sentinel.version} + + com.alibaba.csp + sentinel-datasource-consul + ${sentinel.version} + + com.alibaba.csp sentinel-web-servlet @@ -318,5 +333,91 @@ + + release + + + + org.apache.maven.plugins + maven-source-plugin + ${maven-source-plugin.version} + + + package + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + ${maven-javadoc-plugin.version} + + + package + + jar + + + + + + + org.apache.maven.plugins + maven-gpg-plugin + ${maven-gpg-plugin.version} + + + verify + + sign + + + + + + + org.codehaus.mojo + flatten-maven-plugin + ${flatten-maven-plugin.version} + + true + resolveCiFriendliesOnly + + + + flatten + process-resources + + flatten + + + + flatten.clean + clean + + clean + + + + + + + + + + sonatype-nexus-snapshots + Sonatype Nexus Snapshots + https://oss.sonatype.org/content/repositories/snapshots/ + + + sonatype-nexus-staging + Nexus Release Repository + https://oss.sonatype.org/service/local/staging/deploy/maven2/ + + + diff --git a/spring-cloud-alibaba-docs/pom.xml b/spring-cloud-alibaba-docs/pom.xml index 8778d9f8..8fa73ba7 100644 --- a/spring-cloud-alibaba-docs/pom.xml +++ b/spring-cloud-alibaba-docs/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba - 2.1.2.BUILD-SNAPSHOT + ${revision} 4.0.0 diff --git a/spring-cloud-alibaba-docs/src/main/asciidoc-zh/dependency-management.adoc b/spring-cloud-alibaba-docs/src/main/asciidoc-zh/dependency-management.adoc index 80d00b97..8b04ac84 100644 --- a/spring-cloud-alibaba-docs/src/main/asciidoc-zh/dependency-management.adoc +++ b/spring-cloud-alibaba-docs/src/main/asciidoc-zh/dependency-management.adoc @@ -10,7 +10,7 @@ Spring Cloud Alibaba BOM 包含了它所使用的所有依赖的版本。 com.alibaba.cloud spring-cloud-alibaba-dependencies - 2.1.2.BUILD-SNAPSHOT + 2.1.2.RELEASE pom import diff --git a/spring-cloud-alibaba-docs/src/main/asciidoc/dependency-management.adoc b/spring-cloud-alibaba-docs/src/main/asciidoc/dependency-management.adoc index db3b3a8b..dd40699e 100644 --- a/spring-cloud-alibaba-docs/src/main/asciidoc/dependency-management.adoc +++ b/spring-cloud-alibaba-docs/src/main/asciidoc/dependency-management.adoc @@ -8,7 +8,7 @@ If you’re a Maven Central user, add our BOM to your pom.xml com.alibaba.cloud spring-cloud-alibaba-dependencies - 2.1.2.BUILD-SNAPSHOT + 2.1.2.RELEASE pom import diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-config-example/pom.xml b/spring-cloud-alibaba-examples/nacos-example/nacos-config-example/pom.xml index 2a073065..aec944a5 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-config-example/pom.xml +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-config-example/pom.xml @@ -5,16 +5,15 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.1.2.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 - nacos-config-example - jar + Spring Cloud Starter Alibaba Nacos Config Example Example demonstrating how to use nacos config - + jar diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/pom.xml b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/pom.xml index 4caade83..43c829bb 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/pom.xml +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/pom.xml @@ -5,15 +5,15 @@ com.alibaba.cloud nacos-discovery-example - 2.1.2.BUILD-SNAPSHOT + ${revision} 4.0.0 nacos-discovery-consumer-example - jar + Spring Cloud Starter Alibaba Nacos Discovery Consumer Example Example demonstrating how to use nacos discovery - + jar diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/pom.xml b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/pom.xml index e2cd0fd8..ac906701 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/pom.xml +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/pom.xml @@ -5,15 +5,14 @@ com.alibaba.cloud nacos-discovery-example - 2.1.2.BUILD-SNAPSHOT + ${revision} 4.0.0 - nacos-discovery-provider-example - jar + Spring Cloud Starter Alibaba Nacos Discovery Provider Example Example demonstrating how to use nacos discovery - + jar diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-spring-cloud-config-client-example/pom.xml b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-spring-cloud-config-client-example/pom.xml index 926c05eb..f9047bcd 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-spring-cloud-config-client-example/pom.xml +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-spring-cloud-config-client-example/pom.xml @@ -5,15 +5,14 @@ com.alibaba.cloud nacos-discovery-example - 2.1.2.BUILD-SNAPSHOT + ${revision} 4.0.0 - nacos-discovery-spring-cloud-config-client-example - jar + Spring Cloud Starter Alibaba Nacos Discovery x Config Client Example Example demonstrating how to use nacos discovery - + jar diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-spring-cloud-config-server-example/pom.xml b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-spring-cloud-config-server-example/pom.xml index 524c4331..adecde55 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-spring-cloud-config-server-example/pom.xml +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-spring-cloud-config-server-example/pom.xml @@ -5,15 +5,14 @@ com.alibaba.cloud nacos-discovery-example - 2.1.2.BUILD-SNAPSHOT + ${revision} 4.0.0 - nacos-discovery-spring-cloud-config-server-example - jar + Spring Cloud Starter Alibaba Nacos Discovery x Config Server Example Example demonstrating how to use nacos discovery - + jar diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/pom.xml b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/pom.xml index 4a1145eb..9c29e19b 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/pom.xml +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/pom.xml @@ -5,16 +5,15 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.1.2.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 - nacos-discovery-example - pom + Spring Cloud Starter Alibaba Nacos Discovery Examples Example demonstrating how to use nacos discovery - + pom nacos-discovery-consumer-example diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/nacos-gateway-discovery-example/pom.xml b/spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/nacos-gateway-discovery-example/pom.xml index 9f1ca324..9f321376 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/nacos-gateway-discovery-example/pom.xml +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/nacos-gateway-discovery-example/pom.xml @@ -5,15 +5,14 @@ com.alibaba.cloud nacos-gateway-example - 2.1.2.BUILD-SNAPSHOT + ${revision} 4.0.0 - nacos-gateway-discovery-example - jar + Spring Cloud Starter Alibaba Nacos Discovery x Gateway Example Example demonstrating how to use gateway with nacos - + jar diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/nacos-gateway-provider-example/pom.xml b/spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/nacos-gateway-provider-example/pom.xml index f7d198b9..7c7bd448 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/nacos-gateway-provider-example/pom.xml +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/nacos-gateway-provider-example/pom.xml @@ -5,15 +5,14 @@ com.alibaba.cloud nacos-gateway-example - 2.1.2.BUILD-SNAPSHOT + ${revision} 4.0.0 - nacos-gateway-provider-example - jar + Spring Cloud Starter Alibaba Nacos Discovery x Gateway - Provider Example Example demonstrating how to use gateway with nacos - + jar diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/pom.xml b/spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/pom.xml index ec71630f..812c08b3 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/pom.xml +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/pom.xml @@ -5,16 +5,15 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.1.2.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 - nacos-gateway-example - pom + Spring Cloud Starter Alibaba Nacos Discovery x Gateway Examples Example demonstrating how to use gateway with nacos - + pom nacos-gateway-discovery-example diff --git a/spring-cloud-alibaba-examples/pom.xml b/spring-cloud-alibaba-examples/pom.xml index 8085d089..157fc502 100644 --- a/spring-cloud-alibaba-examples/pom.xml +++ b/spring-cloud-alibaba-examples/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba - 2.1.2.BUILD-SNAPSHOT + ${revision} ../pom.xml diff --git a/spring-cloud-alibaba-examples/rocketmq-example/rocketmq-consume-example/pom.xml b/spring-cloud-alibaba-examples/rocketmq-example/rocketmq-consume-example/pom.xml index 2f578600..19ec9449 100644 --- a/spring-cloud-alibaba-examples/rocketmq-example/rocketmq-consume-example/pom.xml +++ b/spring-cloud-alibaba-examples/rocketmq-example/rocketmq-consume-example/pom.xml @@ -5,16 +5,15 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.1.2.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 - rocketmq-consume-example - jar + Spring Cloud Starter Stream Alibaba RocketMQ Consume Example Example demonstrating how to use rocketmq consume - + jar diff --git a/spring-cloud-alibaba-examples/rocketmq-example/rocketmq-produce-example/pom.xml b/spring-cloud-alibaba-examples/rocketmq-example/rocketmq-produce-example/pom.xml index 53e739d2..6702116c 100644 --- a/spring-cloud-alibaba-examples/rocketmq-example/rocketmq-produce-example/pom.xml +++ b/spring-cloud-alibaba-examples/rocketmq-example/rocketmq-produce-example/pom.xml @@ -5,16 +5,15 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.1.2.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 - rocketmq-produce-example - jar + Spring Cloud Starter Stream Alibaba RocketMQ Produce Example Example demonstrating how to use rocketmq produce - + jar diff --git a/spring-cloud-alibaba-examples/seata-example/account-service/pom.xml b/spring-cloud-alibaba-examples/seata-example/account-service/pom.xml index c7475484..2d10b97c 100644 --- a/spring-cloud-alibaba-examples/seata-example/account-service/pom.xml +++ b/spring-cloud-alibaba-examples/seata-example/account-service/pom.xml @@ -5,12 +5,15 @@ spring-cloud-alibaba-examples com.alibaba.cloud - 2.1.2.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 account-service + Spring Cloud Starter Alibaba Seata Example - Account Service + jar + com.alibaba.cloud diff --git a/spring-cloud-alibaba-examples/seata-example/business-service/pom.xml b/spring-cloud-alibaba-examples/seata-example/business-service/pom.xml index 0056839e..72986e4f 100644 --- a/spring-cloud-alibaba-examples/seata-example/business-service/pom.xml +++ b/spring-cloud-alibaba-examples/seata-example/business-service/pom.xml @@ -5,12 +5,15 @@ spring-cloud-alibaba-examples com.alibaba.cloud - 2.1.2.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 business-service + Spring Cloud Starter Alibaba Seata Example - Business Service + jar + com.alibaba.cloud diff --git a/spring-cloud-alibaba-examples/seata-example/order-service/pom.xml b/spring-cloud-alibaba-examples/seata-example/order-service/pom.xml index 806fc409..6c9ae704 100644 --- a/spring-cloud-alibaba-examples/seata-example/order-service/pom.xml +++ b/spring-cloud-alibaba-examples/seata-example/order-service/pom.xml @@ -5,12 +5,15 @@ spring-cloud-alibaba-examples com.alibaba.cloud - 2.1.2.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 order-service + Spring Cloud Starter Alibaba Seata Example - Business Service + jar + com.alibaba.cloud diff --git a/spring-cloud-alibaba-examples/seata-example/storage-service/pom.xml b/spring-cloud-alibaba-examples/seata-example/storage-service/pom.xml index e73d96ca..a2cbdccd 100644 --- a/spring-cloud-alibaba-examples/seata-example/storage-service/pom.xml +++ b/spring-cloud-alibaba-examples/seata-example/storage-service/pom.xml @@ -5,11 +5,13 @@ spring-cloud-alibaba-examples com.alibaba.cloud - 2.1.2.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 storage-service + Spring Cloud Starter Alibaba Seata Example - Storage Service + jar diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/pom.xml b/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/pom.xml index 5f03b988..15e7634e 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/pom.xml +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/pom.xml @@ -5,15 +5,15 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.1.2.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 - sentinel-core-example - jar + Spring Cloud Starter Alibaba Sentinel Core Example Example demonstrating how to use sentinel + jar diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-dubbo-example/sentinel-dubbo-api/pom.xml b/spring-cloud-alibaba-examples/sentinel-example/sentinel-dubbo-example/sentinel-dubbo-api/pom.xml index beb8d556..dcb0d8d4 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-dubbo-example/sentinel-dubbo-api/pom.xml +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-dubbo-example/sentinel-dubbo-api/pom.xml @@ -5,14 +5,15 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.1.2.BUILD-SNAPSHOT + ${revision} ../../../pom.xml 4.0.0 sentinel-dubbo-api - jar + Spring Cloud Starter Alibaba Sentinel x Dubbo - API api for sentinel dubbo example + jar diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-dubbo-example/sentinel-dubbo-consumer-example/pom.xml b/spring-cloud-alibaba-examples/sentinel-example/sentinel-dubbo-example/sentinel-dubbo-consumer-example/pom.xml index 61a00448..f17a436c 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-dubbo-example/sentinel-dubbo-consumer-example/pom.xml +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-dubbo-example/sentinel-dubbo-consumer-example/pom.xml @@ -5,16 +5,15 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.1.2.BUILD-SNAPSHOT + ${revision} ../../../pom.xml 4.0.0 - sentinel-dubbo-consumer-example - jar + Spring Cloud Starter Alibaba Sentinel x Dubbo - Consumer Example Example demonstrating how to use sentinel with dubbo - + jar @@ -31,7 +30,7 @@ com.alibaba.cloud sentinel-dubbo-api - ${project.version} + ${revision} diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-dubbo-example/sentinel-dubbo-provider-example/pom.xml b/spring-cloud-alibaba-examples/sentinel-example/sentinel-dubbo-example/sentinel-dubbo-provider-example/pom.xml index 63335ddc..016acbc9 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-dubbo-example/sentinel-dubbo-provider-example/pom.xml +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-dubbo-example/sentinel-dubbo-provider-example/pom.xml @@ -5,16 +5,15 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.1.2.BUILD-SNAPSHOT + ${revision} ../../../pom.xml 4.0.0 - sentinel-dubbo-provider-example - jar + Spring Cloud Starter Alibaba Sentinel x Dubbo - Provider Example Example demonstrating how to use sentinel with dubbo - + jar @@ -31,7 +30,7 @@ com.alibaba.cloud sentinel-dubbo-api - ${project.version} + ${revision} diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-feign-example/sentinel-feign-consumer-example/pom.xml b/spring-cloud-alibaba-examples/sentinel-example/sentinel-feign-example/sentinel-feign-consumer-example/pom.xml index d8a295a4..bf6b8743 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-feign-example/sentinel-feign-consumer-example/pom.xml +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-feign-example/sentinel-feign-consumer-example/pom.xml @@ -5,16 +5,15 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.1.2.BUILD-SNAPSHOT + ${revision} ../../../pom.xml 4.0.0 - sentinel-feign-consumer-example - jar + Spring Cloud Starter Alibaba Sentinel x Feign - Consumer Example Example demonstrating how to use sentinel with feign - + jar diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-feign-example/sentinel-feign-consumer-example/src/main/resources/application.yml b/spring-cloud-alibaba-examples/sentinel-example/sentinel-feign-example/sentinel-feign-consumer-example/src/main/resources/application.yml index 219c38d0..280cdffc 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-feign-example/sentinel-feign-consumer-example/src/main/resources/application.yml +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-feign-example/sentinel-feign-consumer-example/src/main/resources/application.yml @@ -6,6 +6,8 @@ spring: name: service-consumer cloud: nacos: + username: nacos + password: nacos discovery: server-addr: 127.0.0.1:8848 diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-feign-example/sentinel-feign-provider-example/pom.xml b/spring-cloud-alibaba-examples/sentinel-example/sentinel-feign-example/sentinel-feign-provider-example/pom.xml index 159aa1ae..98471123 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-feign-example/sentinel-feign-provider-example/pom.xml +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-feign-example/sentinel-feign-provider-example/pom.xml @@ -5,15 +5,15 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.1.2.BUILD-SNAPSHOT + ${revision} ../../../pom.xml 4.0.0 - sentinel-feign-provider-example - jar + Spring Cloud Starter Alibaba Sentinel x Feign - Provider Example Example demonstrating how to use sentinel with feign + jar diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-feign-example/sentinel-feign-provider-example/src/main/resources/application.yml b/spring-cloud-alibaba-examples/sentinel-example/sentinel-feign-example/sentinel-feign-provider-example/src/main/resources/application.yml index f6098ec7..15374aa3 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-feign-example/sentinel-feign-provider-example/src/main/resources/application.yml +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-feign-example/sentinel-feign-provider-example/src/main/resources/application.yml @@ -6,6 +6,8 @@ spring: name: service-provider cloud: nacos: + username: nacos + password: nacos discovery: server-addr: 127.0.0.1:8848 diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-spring-cloud-gateway-example/pom.xml b/spring-cloud-alibaba-examples/sentinel-example/sentinel-spring-cloud-gateway-example/pom.xml index 746cedee..7ab7374e 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-spring-cloud-gateway-example/pom.xml +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-spring-cloud-gateway-example/pom.xml @@ -5,15 +5,15 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.1.2.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 - sentinel-spring-cloud-gateway-example - jar + Spring Cloud Starter Alibaba Sentinel x Gateway Example Example demonstrating how to use sentinel with spring cloud gateway + jar diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-webflux-example/pom.xml b/spring-cloud-alibaba-examples/sentinel-example/sentinel-webflux-example/pom.xml index e91d4a8b..530f132b 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-webflux-example/pom.xml +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-webflux-example/pom.xml @@ -5,16 +5,15 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.1.2.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 - sentinel-webflux-example - jar + Spring Cloud Starter Alibaba Sentinel x WebFlux Example Example demonstrating how to use sentinel with webflux - + jar diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-zuul-example/pom.xml b/spring-cloud-alibaba-examples/sentinel-example/sentinel-zuul-example/pom.xml index e5d019e0..9af9be6e 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-zuul-example/pom.xml +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-zuul-example/pom.xml @@ -5,15 +5,15 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.1.2.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 - sentinel-zuul-example - jar + Spring Cloud Starter Alibaba Sentinel x Zuul Example Example demonstrating how to use sentinel with zuul + jar diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/pom.xml index bf5e849a..75ed0883 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/pom.xml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/pom.xml @@ -5,14 +5,14 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.1.2.BUILD-SNAPSHOT + ${revision} ../pom.xml 4.0.0 com.alibaba.cloud spring-cloud-alibaba-dubbo-examples - 2.1.2.BUILD-SNAPSHOT + ${revision} Spring Cloud Alibaba Dubbo Examples pom diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-client-sample/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-client-sample/pom.xml index 77b6c170..1af3a87e 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-client-sample/pom.xml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-client-sample/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-dubbo-examples - 2.1.2.BUILD-SNAPSHOT + ${revision} ../pom.xml 4.0.0 @@ -13,14 +13,14 @@ com.alibaba.cloud spring-cloud-dubbo-client-sample Spring Cloud Dubbo Client Sample - 2.1.2.BUILD-SNAPSHOT + ${revision} com.alibaba.cloud spring-cloud-dubbo-sample-api - ${project.version} + ${revision} diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-client-sample/src/main/resources/bootstrap.yaml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-client-sample/src/main/resources/bootstrap.yaml index 42e49bcb..5146a6d5 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-client-sample/src/main/resources/bootstrap.yaml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-client-sample/src/main/resources/bootstrap.yaml @@ -1,6 +1,4 @@ dubbo: - registry: - address: spring-cloud://localhost cloud: subscribed-services: spring-cloud-alibaba-dubbo-server @@ -11,5 +9,7 @@ spring: allow-bean-definition-overriding: true cloud: nacos: + username: nacos + password: nacos discovery: server-addr: 127.0.0.1:8848 \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/pom.xml index 509cf9a7..36b7a3fb 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/pom.xml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-dubbo-examples - 2.1.2.BUILD-SNAPSHOT + ${revision} ../pom.xml 4.0.0 @@ -41,7 +41,7 @@ com.alibaba.cloud spring-cloud-dubbo-sample-api - ${project.version} + ${revision} diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/src/main/resources/bootstrap.yaml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/src/main/resources/bootstrap.yaml index dca555cf..e753ea0e 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/src/main/resources/bootstrap.yaml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/src/main/resources/bootstrap.yaml @@ -30,6 +30,8 @@ spring: cloud: nacos: + username: nacos + password: nacos discovery: enabled: true register-enabled: true diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/pom.xml index 2cc073f2..3bdfb0be 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/pom.xml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-dubbo-examples - 2.1.2.BUILD-SNAPSHOT + ${revision} ../pom.xml 4.0.0 @@ -32,7 +32,7 @@ com.alibaba.cloud spring-cloud-dubbo-sample-api - ${project.version} + ${revision} diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/src/main/resources/bootstrap.yaml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/src/main/resources/bootstrap.yaml index 0d8dfca9..8f56b284 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/src/main/resources/bootstrap.yaml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/src/main/resources/bootstrap.yaml @@ -27,6 +27,8 @@ spring: cloud: nacos: + username: nacos + password: nacos discovery: enabled: true register-enabled: true diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/pom.xml index 79910103..99f9498f 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/pom.xml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-dubbo-examples - 2.1.2.BUILD-SNAPSHOT + ${revision} ../pom.xml 4.0.0 @@ -30,7 +30,7 @@ com.alibaba.cloud spring-cloud-dubbo-sample-api - ${project.version} + ${revision} diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/src/main/resources/bootstrap.yaml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/src/main/resources/bootstrap.yaml index 0d8dfca9..8f56b284 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/src/main/resources/bootstrap.yaml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/src/main/resources/bootstrap.yaml @@ -27,6 +27,8 @@ spring: cloud: nacos: + username: nacos + password: nacos discovery: enabled: true register-enabled: true diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/pom.xml index b509110d..8727237f 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/pom.xml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-dubbo-examples - 2.1.2.BUILD-SNAPSHOT + ${revision} 4.0.0 diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-server-sample/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-server-sample/pom.xml index 4e5b1a83..e30e11a8 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-server-sample/pom.xml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-server-sample/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-dubbo-examples - 2.1.2.BUILD-SNAPSHOT + ${revision} ../pom.xml @@ -14,7 +14,7 @@ com.alibaba.cloud spring-cloud-dubbo-server-sample Spring Cloud Dubbo Server Sample - 2.1.2.BUILD-SNAPSHOT + ${revision} @@ -22,7 +22,7 @@ com.alibaba.cloud spring-cloud-dubbo-sample-api - ${project.version} + ${revision} diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-server-sample/src/main/resources/bootstrap.yaml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-server-sample/src/main/resources/bootstrap.yaml index 394df7ec..4bc40bca 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-server-sample/src/main/resources/bootstrap.yaml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-server-sample/src/main/resources/bootstrap.yaml @@ -4,8 +4,6 @@ dubbo: protocol: name: dubbo port: -1 - registry: - address: spring-cloud://localhost spring: application: @@ -14,5 +12,7 @@ spring: allow-bean-definition-overriding: true cloud: nacos: + username: nacos + password: nacos discovery: server-addr: 127.0.0.1:8848 \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/pom.xml index 01e51d53..ea10b540 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/pom.xml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-dubbo-examples - 2.1.2.BUILD-SNAPSHOT + ${revision} ../pom.xml 4.0.0 @@ -29,7 +29,7 @@ com.alibaba.cloud spring-cloud-dubbo-sample-api - ${project.version} + ${revision} diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/src/main/resources/bootstrap.yaml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/src/main/resources/bootstrap.yaml index a86acd15..990ee3f0 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/src/main/resources/bootstrap.yaml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/src/main/resources/bootstrap.yaml @@ -30,6 +30,8 @@ spring: cloud: nacos: + username: nacos + password: nacos discovery: enabled: true register-enabled: true diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-consul-example/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-consul-example/pom.xml index 1de5fc6d..906c3e04 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-consul-example/pom.xml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-consul-example/pom.xml @@ -4,13 +4,15 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.1.2.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 spring-cloud-alibaba-sidecar-consul-example + Spring Cloud Starter Alibaba Sidecar x Consul Example Example demonstrating how to use Spring Cloud Alibaba Sidecar with consul + jar diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/pom.xml index f2534aac..690d2031 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/pom.xml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/pom.xml @@ -4,13 +4,15 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.1.2.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 spring-cloud-alibaba-sidecar-nacos-example + Spring Cloud Starter Alibaba Sidecar x Nacos Example Example demonstrating how to use Spring Cloud Alibaba Sidecar with nacos + jar diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/src/main/resources/application.yml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/src/main/resources/application.yml index 7f059ef3..51550341 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/src/main/resources/application.yml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/src/main/resources/application.yml @@ -3,6 +3,8 @@ server: spring: cloud: nacos: + username: nacos + password: nacos discovery: server-addr: localhost:8848 gateway: diff --git a/spring-cloud-alibaba-examples/spring-cloud-bus-rocketmq-example/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-bus-rocketmq-example/pom.xml index c8c65cef..0d586b60 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-bus-rocketmq-example/pom.xml +++ b/spring-cloud-alibaba-examples/spring-cloud-bus-rocketmq-example/pom.xml @@ -5,13 +5,15 @@ spring-cloud-alibaba-examples com.alibaba.cloud - 2.1.2.BUILD-SNAPSHOT + ${revision} ../pom.xml 4.0.0 spring-cloud-bus-rocketmq-example - Spring Cloud Bus RocketMQ Example + Spring Cloud Starter Bus Alibaba RocketMQ Example + Example demonstrating how to use Spring Cloud Bus RocketMQ + jar diff --git a/spring-cloud-alibaba-starters/pom.xml b/spring-cloud-alibaba-starters/pom.xml index 0b8b83fe..eb63bf60 100644 --- a/spring-cloud-alibaba-starters/pom.xml +++ b/spring-cloud-alibaba-starters/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba - 2.1.2.BUILD-SNAPSHOT + ${revision} ../pom.xml diff --git a/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/pom.xml b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/pom.xml index 5ad79ad7..3316d7bd 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/pom.xml +++ b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-starters - 2.1.2.BUILD-SNAPSHOT + ${revision} ../pom.xml @@ -83,6 +83,12 @@ true + + com.alibaba.csp + sentinel-datasource-consul + true + + com.fasterxml.jackson.core jackson-databind diff --git a/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/config/ConsulDataSourceProperties.java b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/config/ConsulDataSourceProperties.java new file mode 100644 index 00000000..e3e68d47 --- /dev/null +++ b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/config/ConsulDataSourceProperties.java @@ -0,0 +1,97 @@ +/* + * Copyright 2013-2018 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.cloud.sentinel.datasource.config; + +import com.alibaba.cloud.sentinel.datasource.factorybean.ConsulDataSourceFactoryBean; + +import org.springframework.util.StringUtils; + +/** + * Consul Properties class Using by {@link DataSourcePropertiesConfiguration} and + * {@link ConsulDataSourceFactoryBean}. + * + * @author mengjin + */ +public class ConsulDataSourceProperties extends AbstractDataSourceProperties { + + public ConsulDataSourceProperties() { + super(ConsulDataSourceFactoryBean.class.getName()); + } + + /** + * consul server host. + */ + private String host; + + /** + * consul server port. + */ + private int port = 8500; + + /** + * data key in Redis. + */ + private String ruleKey; + + /** + * Request of query will hang until timeout (in second) or get updated value. + */ + private int waitTimeoutInSecond = 1; + + @Override + public void preCheck(String dataSourceName) { + if (StringUtils.isEmpty(host)) { + throw new IllegalArgumentException("ConsulDataSource server-host is empty"); + } + if (StringUtils.isEmpty(ruleKey)) { + throw new IllegalArgumentException( + "ConsulDataSource ruleKey can not be empty"); + } + } + + public String getHost() { + return host; + } + + public void setHost(String host) { + this.host = host; + } + + public int getPort() { + return port; + } + + public void setPort(int port) { + this.port = port; + } + + public String getRuleKey() { + return ruleKey; + } + + public void setRuleKey(String ruleKey) { + this.ruleKey = ruleKey; + } + + public int getWaitTimeoutInSecond() { + return waitTimeoutInSecond; + } + + public void setWaitTimeoutInSecond(int waitTimeoutInSecond) { + this.waitTimeoutInSecond = waitTimeoutInSecond; + } +} diff --git a/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/factorybean/ConsulDataSourceFactoryBean.java b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/factorybean/ConsulDataSourceFactoryBean.java new file mode 100644 index 00000000..b8d01763 --- /dev/null +++ b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/factorybean/ConsulDataSourceFactoryBean.java @@ -0,0 +1,91 @@ +/* + * Copyright 2013-2018 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.cloud.sentinel.datasource.factorybean; + +import com.alibaba.csp.sentinel.datasource.Converter; +import com.alibaba.csp.sentinel.datasource.consul.ConsulDataSource; + +import org.springframework.beans.factory.FactoryBean; + +/** + * A {@link FactoryBean} for creating {@link ConsulDataSource} instance. + * + * @author mengjin + * @see ConsulDataSource + */ +public class ConsulDataSourceFactoryBean implements FactoryBean { + + private String host; + + private int port; + + private String ruleKey; + + private int waitTimeoutInSecond; + + private Converter converter; + + @Override + public ConsulDataSource getObject() throws Exception { + return new ConsulDataSource(host, port, ruleKey, waitTimeoutInSecond, converter); + } + + @Override + public Class getObjectType() { + return ConsulDataSource.class; + } + + public String getHost() { + return host; + } + + public void setHost(String host) { + this.host = host; + } + + public int getPort() { + return port; + } + + public void setPort(int port) { + this.port = port; + } + + public String getRuleKey() { + return ruleKey; + } + + public void setRuleKey(String ruleKey) { + this.ruleKey = ruleKey; + } + + public int getWaitTimeoutInSecond() { + return waitTimeoutInSecond; + } + + public void setWaitTimeoutInSecond(int waitTimeoutInSecond) { + this.waitTimeoutInSecond = waitTimeoutInSecond; + } + + public Converter getConverter() { + return converter; + } + + public void setConverter(Converter converter) { + this.converter = converter; + } +} diff --git a/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/resources/META-INF/sentinel-datasource.properties b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/resources/META-INF/sentinel-datasource.properties index 074751fb..e67a3b9b 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/resources/META-INF/sentinel-datasource.properties +++ b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/resources/META-INF/sentinel-datasource.properties @@ -3,3 +3,4 @@ file =com.alibaba.csp.sentinel.datasource.FileRefreshableDataSource apollo = com.alibaba.csp.sentinel.datasource.apollo.ApolloDataSource zk = com.alibaba.csp.sentinel.datasource.zookeeper.ZookeeperDataSource redis = com.alibaba.csp.sentinel.datasource.redis.RedisDataSource +consul = com.alibaba.csp.sentinel.datasource.consul.ConsulDataSource diff --git a/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-gateway/pom.xml b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-gateway/pom.xml index 3f958478..2461c672 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-gateway/pom.xml +++ b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-gateway/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-starters - 2.1.2.BUILD-SNAPSHOT + ${revision} ../pom.xml diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config-server/pom.xml b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config-server/pom.xml index 3d6ae4bf..483914cf 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config-server/pom.xml +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config-server/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-starters - 2.1.2.BUILD-SNAPSHOT + ${revision} ../pom.xml diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/pom.xml b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/pom.xml index 910ba90d..0a36d2c8 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/pom.xml +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-starters - 2.1.2.BUILD-SNAPSHOT + ${revision} ../pom.xml diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/pom.xml b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/pom.xml index 4a34ffbc..50a1162a 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/pom.xml +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-starters - 2.1.2.BUILD-SNAPSHOT + ${revision} ../pom.xml diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/pom.xml b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/pom.xml index ffa10366..3f3e1a2e 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/pom.xml +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-starters - 2.1.2.BUILD-SNAPSHOT + ${revision} ../pom.xml diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/src/main/java/com/alibaba/cloud/seata/feign/hystrix/SeataHystrixConcurrencyStrategy.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/src/main/java/com/alibaba/cloud/seata/feign/hystrix/SeataHystrixConcurrencyStrategy.java index 59253059..2f3c93ff 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/src/main/java/com/alibaba/cloud/seata/feign/hystrix/SeataHystrixConcurrencyStrategy.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/src/main/java/com/alibaba/cloud/seata/feign/hystrix/SeataHystrixConcurrencyStrategy.java @@ -16,23 +16,104 @@ package com.alibaba.cloud.seata.feign.hystrix; +import java.util.concurrent.BlockingQueue; import java.util.concurrent.Callable; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; +import com.netflix.hystrix.HystrixThreadPoolKey; +import com.netflix.hystrix.HystrixThreadPoolProperties; import com.netflix.hystrix.strategy.HystrixPlugins; import com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy; +import com.netflix.hystrix.strategy.concurrency.HystrixRequestVariable; +import com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableLifecycle; +import com.netflix.hystrix.strategy.eventnotifier.HystrixEventNotifier; +import com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook; +import com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisher; +import com.netflix.hystrix.strategy.properties.HystrixPropertiesStrategy; +import com.netflix.hystrix.strategy.properties.HystrixProperty; import io.seata.core.context.RootContext; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.springframework.web.context.request.RequestAttributes; +import org.springframework.web.context.request.RequestContextHolder; /** * @author xiaojing */ public class SeataHystrixConcurrencyStrategy extends HystrixConcurrencyStrategy { + private final Logger logger = LoggerFactory + .getLogger(SeataHystrixConcurrencyStrategy.class); private HystrixConcurrencyStrategy delegate; public SeataHystrixConcurrencyStrategy() { - this.delegate = HystrixPlugins.getInstance().getConcurrencyStrategy(); - HystrixPlugins.reset(); - HystrixPlugins.getInstance().registerConcurrencyStrategy(this); + try { + this.delegate = HystrixPlugins.getInstance().getConcurrencyStrategy(); + if (this.delegate instanceof SeataHystrixConcurrencyStrategy) { + return; + } + HystrixCommandExecutionHook commandExecutionHook = HystrixPlugins + .getInstance().getCommandExecutionHook(); + HystrixEventNotifier eventNotifier = HystrixPlugins.getInstance() + .getEventNotifier(); + HystrixMetricsPublisher metricsPublisher = HystrixPlugins.getInstance() + .getMetricsPublisher(); + HystrixPropertiesStrategy propertiesStrategy = HystrixPlugins.getInstance() + .getPropertiesStrategy(); + logCurrentStateOfHystrixPlugins(eventNotifier, metricsPublisher, + propertiesStrategy); + HystrixPlugins.reset(); + HystrixPlugins.getInstance().registerConcurrencyStrategy(this); + HystrixPlugins.getInstance() + .registerCommandExecutionHook(commandExecutionHook); + HystrixPlugins.getInstance().registerEventNotifier(eventNotifier); + HystrixPlugins.getInstance().registerMetricsPublisher(metricsPublisher); + HystrixPlugins.getInstance().registerPropertiesStrategy(propertiesStrategy); + } + catch (Exception ex) { + logger.error("Failed to register Seata Hystrix Concurrency Strategy", ex); + } + } + + private void logCurrentStateOfHystrixPlugins(HystrixEventNotifier eventNotifier, + HystrixMetricsPublisher metricsPublisher, + HystrixPropertiesStrategy propertiesStrategy) { + if (logger.isDebugEnabled()) { + logger.debug("Current Hystrix plugins configuration is [" + + "concurrencyStrategy [" + this.delegate + "]," + "eventNotifier [" + + eventNotifier + "]," + "metricPublisher [" + metricsPublisher + "]," + + "propertiesStrategy [" + propertiesStrategy + "]," + "]"); + logger.debug("Registering Seata Hystrix Concurrency Strategy."); + } + } + + @Override + public ThreadPoolExecutor getThreadPool(HystrixThreadPoolKey threadPoolKey, + HystrixProperty corePoolSize, + HystrixProperty maximumPoolSize, + HystrixProperty keepAliveTime, TimeUnit unit, + BlockingQueue workQueue) { + return this.delegate.getThreadPool(threadPoolKey, corePoolSize, maximumPoolSize, + keepAliveTime, unit, workQueue); + } + + @Override + public ThreadPoolExecutor getThreadPool(HystrixThreadPoolKey threadPoolKey, + HystrixThreadPoolProperties threadPoolProperties) { + return this.delegate.getThreadPool(threadPoolKey, threadPoolProperties); + } + + @Override + public BlockingQueue getBlockingQueue(int maxQueueSize) { + return this.delegate.getBlockingQueue(maxQueueSize); + } + + @Override + public HystrixRequestVariable getRequestVariable( + HystrixRequestVariableLifecycle rv) { + return this.delegate.getRequestVariable(rv); } @Override @@ -52,7 +133,8 @@ public class SeataHystrixConcurrencyStrategy extends HystrixConcurrencyStrategy return wrappedCallable; } - return new SeataContextCallable<>(wrappedCallable); + return new SeataContextCallable<>(wrappedCallable, + RequestContextHolder.getRequestAttributes()); } private static class SeataContextCallable implements Callable { @@ -61,19 +143,24 @@ public class SeataHystrixConcurrencyStrategy extends HystrixConcurrencyStrategy private final String xid; - SeataContextCallable(Callable actual) { + private final RequestAttributes requestAttributes; + + SeataContextCallable(Callable actual, RequestAttributes requestAttribute) { this.actual = actual; + this.requestAttributes = requestAttribute; this.xid = RootContext.getXID(); } @Override public K call() throws Exception { try { + RequestContextHolder.setRequestAttributes(requestAttributes); RootContext.bind(xid); return actual.call(); } finally { RootContext.unbind(); + RequestContextHolder.resetRequestAttributes(); } } diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/pom.xml b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/pom.xml index 3ed0deda..7c3b02c4 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/pom.xml +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-starters - 2.1.2.BUILD-SNAPSHOT + ${revision} ../pom.xml diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel/endpoint/SentinelHealthIndicator.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel/endpoint/SentinelHealthIndicator.java index 2d9466b3..fc60613d 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel/endpoint/SentinelHealthIndicator.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel/endpoint/SentinelHealthIndicator.java @@ -61,7 +61,7 @@ public class SentinelHealthIndicator extends AbstractHealthIndicator { private SentinelProperties sentinelProperties; public SentinelHealthIndicator(DefaultListableBeanFactory beanFactory, - SentinelProperties sentinelProperties) { + SentinelProperties sentinelProperties) { this.beanFactory = beanFactory; this.sentinelProperties = sentinelProperties; } @@ -74,7 +74,7 @@ public class SentinelHealthIndicator extends AbstractHealthIndicator { // detail if (!sentinelProperties.isEnabled()) { detailMap.put("enabled", false); - builder.up().withDetails(detailMap); + withDetails(builder.up(), detailMap); return; } @@ -139,11 +139,16 @@ public class SentinelHealthIndicator extends AbstractHealthIndicator { // If Dashboard and DataSource are both OK, the health status is UP if (dashboardUp && dataSourceUp) { - builder.up().withDetails(detailMap); + withDetails(builder.up(), detailMap); } else { - builder.down().withDetails(detailMap); + withDetails(builder.down(), detailMap); } } + private void withDetails(Health.Builder builder, Map detailMap) { + for (String key : detailMap.keySet()) { + builder.withDetail(key, detailMap.get(key)); + } + } } diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/pom.xml b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/pom.xml index 8f005d96..f4af6d57 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/pom.xml +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/pom.xml @@ -6,7 +6,7 @@ com.alibaba.cloud spring-cloud-alibaba-starters - 2.1.2.BUILD-SNAPSHOT + ${revision} ../pom.xml diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-bus-rocketmq/pom.xml b/spring-cloud-alibaba-starters/spring-cloud-starter-bus-rocketmq/pom.xml index 5a33f963..498b6aa9 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-bus-rocketmq/pom.xml +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-bus-rocketmq/pom.xml @@ -6,7 +6,7 @@ com.alibaba.cloud spring-cloud-alibaba-starters - 2.1.2.BUILD-SNAPSHOT + ${revision} ../pom.xml diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/pom.xml b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/pom.xml index e9181ee9..6fba3f2d 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/pom.xml +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/pom.xml @@ -6,7 +6,7 @@ com.alibaba.cloud spring-cloud-alibaba-starters - 2.1.2.BUILD-SNAPSHOT + ${revision} ../pom.xml diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/annotation/DubboTransported.java b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/annotation/DubboTransported.java index c8c61700..efe083ea 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/annotation/DubboTransported.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/annotation/DubboTransported.java @@ -30,7 +30,7 @@ import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.client.RestTemplate; -import static org.apache.dubbo.rpc.cluster.Constants.DEFAULT_RETRIES; +import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_RETRIES; /** * {@link DubboTransported @DubboTransported} annotation indicates that the traditional diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/condition/MissingSpringCloudRegistryConfigPropertyCondition.java b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/condition/MissingSpringCloudRegistryConfigPropertyCondition.java index 0ea71581..4a4502de 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/condition/MissingSpringCloudRegistryConfigPropertyCondition.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/condition/MissingSpringCloudRegistryConfigPropertyCondition.java @@ -29,7 +29,7 @@ import org.springframework.core.type.AnnotatedTypeMetadata; import org.springframework.util.StringUtils; import static com.alibaba.cloud.dubbo.registry.SpringCloudRegistryFactory.PROTOCOL; -import static org.apache.dubbo.config.spring.util.PropertySourcesUtils.getPrefixedProperties; +import static com.alibaba.spring.util.PropertySourcesUtils.getSubProperties; /** * Missing {@link SpringCloudRegistry} Property {@link Condition}. @@ -61,7 +61,7 @@ public class MissingSpringCloudRegistryConfigPropertyCondition "'spring-cloud' protocol was found from 'dubbo.registry.address'"); } - Map properties = getPrefixedProperties( + Map properties = getSubProperties( environment.getPropertySources(), "dubbo.registries."); boolean found = properties.entrySet().stream().anyMatch(entry -> { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/env/DubboNonWebApplicationEnvironmentPostProcessor.java b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/env/DubboNonWebApplicationEnvironmentPostProcessor.java index 4de58946..10b7b743 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/env/DubboNonWebApplicationEnvironmentPostProcessor.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/env/DubboNonWebApplicationEnvironmentPostProcessor.java @@ -35,7 +35,7 @@ import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_PROTOCOL; -import static org.apache.dubbo.config.spring.util.PropertySourcesUtils.getPrefixedProperties; +import static com.alibaba.spring.util.PropertySourcesUtils.getSubProperties; /** * Dubbo {@link WebApplicationType#NONE Non-Web Application} @@ -149,7 +149,7 @@ public class DubboNonWebApplicationEnvironmentPostProcessor String restPort = null; - Map subProperties = getPrefixedProperties( + Map subProperties = getSubProperties( environment.getPropertySources(), PROTOCOLS_PROPERTY_NAME_PREFIX); Properties properties = new Properties(); diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java index abd27b7f..7a79b541 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java @@ -22,6 +22,7 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -189,7 +190,7 @@ public class DubboServiceMetadataRepository // // private static Map getMap(Map> repository, - String key) { + String key) { return getOrDefault(repository, key, newHashMap()); } @@ -289,9 +290,11 @@ public class DubboServiceMetadataRepository serviceName); } - initSubscribedDubboMetadataService(serviceName); - // mark this service name having been initialized - initializedServices.add(serviceName); + if (initSubscribedDubboMetadataService(serviceName)) { + // mark this service name having been initialized + initializedServices.add(serviceName); + } + } } } @@ -300,12 +303,19 @@ public class DubboServiceMetadataRepository * Remove the metadata and initialized service of Dubbo Services if no there is no * service instance. * @param serviceName the service name + * @param url the meta service url */ - public void removeMetadataAndInitializedService(String serviceName) { + public void removeMetadataAndInitializedService(String serviceName, URL url) { synchronized (monitor) { initializedServices.remove(serviceName); dubboRestServiceMetadataRepository.remove(serviceName); - subscribedDubboMetadataServiceURLs.remove(serviceName); + // fix #1260 if the subscribedDubboMetadataServiceURLs removed fail,old meta + // information will be retained + if (DubboMetadataService.class.getName().equals(url.getServiceInterface())) { + String serviceKey = url.getServiceKey(); + subscribedDubboMetadataServiceURLs.remove(serviceKey); + } + } } @@ -333,7 +343,7 @@ public class DubboServiceMetadataRepository } private void addDubboMetadataServiceURLsMetadata(Map metadata, - List dubboMetadataServiceURLs) { + List dubboMetadataServiceURLs) { String dubboMetadataServiceURLsJSON = jsonUtils.toJSON(dubboMetadataServiceURLs); metadata.put(DUBBO_METADATA_SERVICE_URLS_PROPERTY_NAME, dubboMetadataServiceURLsJSON); @@ -380,7 +390,7 @@ public class DubboServiceMetadataRepository } public List findSubscribedDubboMetadataServiceURLs(String serviceName, - String group, String version, String protocol) { + String group, String version, String protocol) { String serviceKey = URL.buildKey(serviceName, group, version); List urls = null; @@ -393,9 +403,11 @@ public class DubboServiceMetadataRepository return emptyList(); } - return hasText(protocol) ? urls.stream() + return hasText(protocol) + ? urls.stream() .filter(url -> url.getProtocol().equalsIgnoreCase(protocol)) - .collect(Collectors.toList()) : unmodifiableList(urls); + .collect(Collectors.toList()) + : unmodifiableList(urls); } /** @@ -460,7 +472,7 @@ public class DubboServiceMetadataRepository } public Integer getDubboProtocolPort(ServiceInstance serviceInstance, - String protocol) { + String protocol) { String protocolProperty = getDubboProtocolPropertyName(protocol); Map metadata = serviceInstance.getMetadata(); String protocolPort = metadata.get(protocolProperty); @@ -468,7 +480,7 @@ public class DubboServiceMetadataRepository } public List getExportedURLs(String serviceInterface, String group, - String version) { + String version) { String serviceKey = URL.buildKey(serviceInterface, group, version); return allExportedURLs.getOrDefault(serviceKey, Collections.emptyList()); } @@ -525,7 +537,7 @@ public class DubboServiceMetadataRepository * @return {@link DubboRestServiceMetadata} if matched, or null */ public DubboRestServiceMetadata get(String serviceName, - RequestMetadata requestMetadata) { + RequestMetadata requestMetadata) { return match(dubboRestServiceMetadataRepository, serviceName, requestMetadata); } @@ -542,7 +554,7 @@ public class DubboServiceMetadataRepository } private T match(Map> repository, - String serviceName, RequestMetadata requestMetadata) { + String serviceName, RequestMetadata requestMetadata) { Map map = repository.get(serviceName); @@ -614,24 +626,47 @@ public class DubboServiceMetadataRepository subscribedServices.remove(currentApplicationName); } - protected void initSubscribedDubboMetadataService(String serviceName) { - metadataServiceInstanceSelector.choose(discoveryClient.getInstances(serviceName)) - .map(this::getDubboMetadataServiceURLs) - .ifPresent(dubboMetadataServiceURLs -> { - dubboMetadataServiceURLs.forEach(dubboMetadataServiceURL -> { - try { - initSubscribedDubboMetadataServiceURL( - dubboMetadataServiceURL); - initDubboMetadataServiceProxy(dubboMetadataServiceURL); - } - catch (Throwable e) { - if (logger.isErrorEnabled()) { - logger.error(e.getMessage(), e); - } - } - }); - }); + protected Boolean initSubscribedDubboMetadataService(String serviceName) { + // this need to judge whether the initialization is successful or not. The failed + // initialization will not change the initializedServices + Optional optionalServiceInstance = metadataServiceInstanceSelector + .choose(discoveryClient.getInstances(serviceName)); + if (!((Optional) optionalServiceInstance).isPresent()) { + return false; + } + ServiceInstance serviceInstance = optionalServiceInstance.get(); + if (null == serviceInstance) { + return false; + } + List dubboMetadataServiceURLs = getDubboMetadataServiceURLs(serviceInstance); + if (dubboMetadataServiceURLs.isEmpty()) { + return false; + } + for (URL dubboMetadataServiceURL : dubboMetadataServiceURLs) { + try { + initSubscribedDubboMetadataServiceURL(dubboMetadataServiceURL); + DubboMetadataService dubboMetadataService = dubboMetadataConfigServiceProxy + .getProxy(serviceName); + if (dubboMetadataService == null) { + dubboMetadataService = initDubboMetadataServiceProxy( + dubboMetadataServiceURL); + } + + if (dubboMetadataService == null) { + removeMetadataAndInitializedService(serviceName, + dubboMetadataServiceURL); + return false; + } + } + catch (Throwable e) { + if (logger.isErrorEnabled()) { + logger.error(e.getMessage(), e); + } + return false; + } + } initDubboRestServiceMetadataRepository(serviceName); + return true; } private void initSubscribedDubboMetadataServiceURL(URL dubboMetadataServiceURL) { @@ -640,11 +675,13 @@ public class DubboServiceMetadataRepository subscribedDubboMetadataServiceURLs.add(serviceKey, dubboMetadataServiceURL); } - private void initDubboMetadataServiceProxy(URL dubboMetadataServiceURL) { + private DubboMetadataService initDubboMetadataServiceProxy( + URL dubboMetadataServiceURL) { String serviceName = dubboMetadataServiceURL.getParameter(APPLICATION_KEY); String version = dubboMetadataServiceURL.getParameter(VERSION_KEY); // Initialize DubboMetadataService with right version - dubboMetadataConfigServiceProxy.initProxy(serviceName, version); + return dubboMetadataConfigServiceProxy.initProxy(serviceName, version); + } @Override @@ -653,4 +690,4 @@ public class DubboServiceMetadataRepository this.applicationEventPublisher = applicationEventPublisher; } -} +} \ No newline at end of file diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/AbstractSpringCloudRegistry.java b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/AbstractSpringCloudRegistry.java index ce69c823..b4f656b2 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/AbstractSpringCloudRegistry.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/AbstractSpringCloudRegistry.java @@ -48,9 +48,11 @@ import static java.util.Collections.emptyList; import static org.apache.dubbo.common.URLBuilder.from; import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY; import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY; +import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER; import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE; import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY; import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY; +import static org.apache.dubbo.common.constants.RegistryConstants.CATEGORY_KEY; import static org.apache.dubbo.common.constants.RegistryConstants.EMPTY_PROTOCOL; import static org.apache.dubbo.registry.Constants.ADMIN_PROTOCOL; import static org.springframework.util.StringUtils.hasText; @@ -96,10 +98,10 @@ public abstract class AbstractSpringCloudRegistry extends FailbackRegistry { private final ConfigurableApplicationContext applicationContext; public AbstractSpringCloudRegistry(URL url, DiscoveryClient discoveryClient, - DubboServiceMetadataRepository dubboServiceMetadataRepository, - DubboMetadataServiceProxy dubboMetadataConfigServiceProxy, - JSONUtils jsonUtils, DubboGenericServiceFactory dubboGenericServiceFactory, - ConfigurableApplicationContext applicationContext) { + DubboServiceMetadataRepository dubboServiceMetadataRepository, + DubboMetadataServiceProxy dubboMetadataConfigServiceProxy, + JSONUtils jsonUtils, DubboGenericServiceFactory dubboGenericServiceFactory, + ConfigurableApplicationContext applicationContext) { super(url); this.servicesLookupInterval = url .getParameter(SERVICES_LOOKUP_INTERVAL_PARAM_NAME, 60L); @@ -161,6 +163,13 @@ public abstract class AbstractSpringCloudRegistry extends FailbackRegistry { } else if (isDubboMetadataServiceURL(url)) { // for DubboMetadataService subscribeDubboMetadataServiceURLs(url, listener); + if (from(url).getParameter(CATEGORY_KEY) != null + && from(url).getParameter(CATEGORY_KEY).contains(PROVIDER)) { + // Fix #1259 and #753 Listene meta service change events to remove useless + // clients + registerServiceInstancesChangedEventListener(url, listener); + } + } else { // for general Dubbo Services subscribeDubboServiceURLs(url, listener); @@ -181,7 +190,7 @@ public abstract class AbstractSpringCloudRegistry extends FailbackRegistry { * @param listener {@link NotifyListener} */ private void registerServiceInstancesChangedEventListener(URL url, - NotifyListener listener) { + NotifyListener listener) { String listenerId = generateId(url); if (registerListeners.add(listenerId)) { applicationContext.addApplicationListener( @@ -208,8 +217,8 @@ public abstract class AbstractSpringCloudRegistry extends FailbackRegistry { } protected void subscribeDubboServiceURL(URL url, NotifyListener listener, - String serviceName, - Function> serviceInstancesFunction) { + String serviceName, + Function> serviceInstancesFunction) { if (logger.isInfoEnabled()) { logger.info( @@ -228,10 +237,13 @@ public abstract class AbstractSpringCloudRegistry extends FailbackRegistry { // Re-obtain the latest list of available metadata address here, ip or port may // change. // by https://github.com/wangzihaogithub - dubboMetadataConfigServiceProxy.removeProxy(serviceName); - repository.removeMetadataAndInitializedService(serviceName); - dubboGenericServiceFactory.destroy(serviceName); - repository.initializeMetadata(serviceName); + // When the last service provider is closed, 【fix 1259】while close the + // channel,when up a new provider then repository.initializeMetadata(serviceName) + // will throw Exception. + // dubboMetadataConfigServiceProxy.removeProxy(serviceName); + // repository.removeMetadataAndInitializedService(serviceName); + // dubboGenericServiceFactory.destroy(serviceName); + // repository.initializeMetadata(serviceName); if (CollectionUtils.isEmpty(serviceInstances)) { if (logger.isWarnEnabled()) { logger.warn( @@ -239,6 +251,18 @@ public abstract class AbstractSpringCloudRegistry extends FailbackRegistry { + "available , please make sure the further impact", serviceName, url.getServiceKey()); } + if (isDubboMetadataServiceURL(url)) { + // if meta service change, and serviceInstances is zero, will clean up + // information about this client + dubboMetadataConfigServiceProxy.removeProxy(serviceName); + repository.removeMetadataAndInitializedService(serviceName, url); + dubboGenericServiceFactory.destroy(serviceName); + String listenerId = generateId(url); + // The metaservice will restart the new listener. It needs to be optimized + // to see whether the original listener can be reused. + this.registerListeners.remove(listenerId); + } + /** * URLs with {@link RegistryConstants#EMPTY_PROTOCOL} */ @@ -250,6 +274,11 @@ public abstract class AbstractSpringCloudRegistry extends FailbackRegistry { listener.notify(allSubscribedURLs); return; } + if (isDubboMetadataServiceURL(url)) { + // Prevent duplicate generation of DubboMetadataService + return; + } + repository.initializeMetadata(serviceName); DubboMetadataService dubboMetadataService = dubboMetadataConfigServiceProxy .getProxy(serviceName); @@ -301,7 +330,11 @@ public abstract class AbstractSpringCloudRegistry extends FailbackRegistry { } private List emptyURLs(URL url) { - return asList(from(url).setProtocol(EMPTY_PROTOCOL).build()); + // issue : When the last service provider is closed, the client still periodically + // connects to the last provider.n + // fix https://github.com/alibaba/spring-cloud-alibaba/issues/1259 + return asList(from(url).setProtocol(EMPTY_PROTOCOL).removeParameter(CATEGORY_KEY) + .build()); } private List getServiceInstances(String serviceName) { @@ -322,7 +355,7 @@ public abstract class AbstractSpringCloudRegistry extends FailbackRegistry { } private List getExportedURLs(DubboMetadataService dubboMetadataService, - URL url) { + URL url) { String serviceInterface = url.getServiceInterface(); String group = url.getParameter(GROUP_KEY); String version = url.getParameter(VERSION_KEY); @@ -365,4 +398,4 @@ public abstract class AbstractSpringCloudRegistry extends FailbackRegistry { return DUBBO_METADATA_SERVICE_CLASS_NAME.equals(url.getServiceInterface()); } -} +} \ No newline at end of file diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-stream-rocketmq/pom.xml b/spring-cloud-alibaba-starters/spring-cloud-starter-stream-rocketmq/pom.xml index 3e661821..ec44c9d7 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-stream-rocketmq/pom.xml +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-stream-rocketmq/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-starters - 2.1.2.BUILD-SNAPSHOT + ${revision} ../pom.xml