From 52c926dcd685e99f2c4c7f45ea20cb0d9df3da0c Mon Sep 17 00:00:00 2001 From: zhangjf Date: Fri, 20 Feb 2026 18:43:38 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20Gateway=E6=B7=BB=E5=8A=A0Nacos=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=8F=91=E7=8E=B0=E4=BE=9D=E8=B5=96=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E8=B4=9F=E8=BD=BD=E5=9D=87=E8=A1=A1=E5=99=A8=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. fund-gateway pom.xml 添加 spring-cloud-starter-alibaba-nacos-discovery 依赖 2. TenantLoadBalancerAutoConfig 使用 @LoadBalancerClients 注解配置 3. TenantAwareLoadBalancer 增加 serviceId null 检查 --- .../0.0.1-SNAPSHOT/_remote.repositories | 2 +- .../fund-common-0.0.1-SNAPSHOT.jar | Bin 44645 -> 45369 bytes .../0.0.1-SNAPSHOT/maven-metadata-local.xml | 6 +++--- .../fund-common/maven-metadata-local.xml | 2 +- .../0.0.1-SNAPSHOT/_remote.repositories | 2 +- .../0.0.1-SNAPSHOT/maven-metadata-local.xml | 4 ++-- .../fundplatform/maven-metadata-local.xml | 2 +- .../3.3.2/m2e-lastUpdated.properties | 4 ++-- .../3.11.0/m2e-lastUpdated.properties | 4 ++-- .../3.1.1/m2e-lastUpdated.properties | 4 ++-- .../3.1.1/m2e-lastUpdated.properties | 4 ++-- .../3.3.0/m2e-lastUpdated.properties | 4 ++-- .../3.3.1/m2e-lastUpdated.properties | 4 ++-- .../3.12.1/m2e-lastUpdated.properties | 4 ++-- .../3.1.2/m2e-lastUpdated.properties | 4 ++-- .../3.2.0/m2e-lastUpdated.properties | 4 ++-- .../loadbalancer/TenantAwareLoadBalancer.java | 6 ++++++ .../TenantLoadBalancerAutoConfig.java | 14 ++++++++++++++ fund-gateway/pom.xml | 6 ++++++ .../src/main/resources/application.yml | 14 +++----------- 20 files changed, 56 insertions(+), 38 deletions(-) diff --git a/.mvn/repository/com/fundplatform/fund-common/0.0.1-SNAPSHOT/_remote.repositories b/.mvn/repository/com/fundplatform/fund-common/0.0.1-SNAPSHOT/_remote.repositories index de933e1..dd4d899 100644 --- a/.mvn/repository/com/fundplatform/fund-common/0.0.1-SNAPSHOT/_remote.repositories +++ b/.mvn/repository/com/fundplatform/fund-common/0.0.1-SNAPSHOT/_remote.repositories @@ -1,4 +1,4 @@ #NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice. -#Fri Feb 20 18:12:34 CST 2026 +#Fri Feb 20 18:33:58 CST 2026 fund-common-0.0.1-SNAPSHOT.jar>= fund-common-0.0.1-SNAPSHOT.pom>= diff --git a/.mvn/repository/com/fundplatform/fund-common/0.0.1-SNAPSHOT/fund-common-0.0.1-SNAPSHOT.jar b/.mvn/repository/com/fundplatform/fund-common/0.0.1-SNAPSHOT/fund-common-0.0.1-SNAPSHOT.jar index 6b9b9f22490c4a9785468d1903e395f9bb80c10d..1b1f8a137025ae79572052c17244b0973578b12d 100644 GIT binary patch delta 6691 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 delta 6084 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 jpst1&bd>dcom.fundplatform fund-common - 20260220101230 + 20260220103348 true @@ -11,12 +11,12 @@ pom 0.0.1-SNAPSHOT - 20260220101230 + 20260220103348 jar 0.0.1-SNAPSHOT - 20260220101230 + 20260220103348 diff --git a/.mvn/repository/com/fundplatform/fund-common/maven-metadata-local.xml b/.mvn/repository/com/fundplatform/fund-common/maven-metadata-local.xml index 381394d..bcf12c1 100644 --- a/.mvn/repository/com/fundplatform/fund-common/maven-metadata-local.xml +++ b/.mvn/repository/com/fundplatform/fund-common/maven-metadata-local.xml @@ -6,6 +6,6 @@ 0.0.1-SNAPSHOT - 20260220101230 + 20260220103348 diff --git a/.mvn/repository/com/fundplatform/fundplatform/0.0.1-SNAPSHOT/_remote.repositories b/.mvn/repository/com/fundplatform/fundplatform/0.0.1-SNAPSHOT/_remote.repositories index 4fa4571..0aa0a3b 100644 --- a/.mvn/repository/com/fundplatform/fundplatform/0.0.1-SNAPSHOT/_remote.repositories +++ b/.mvn/repository/com/fundplatform/fundplatform/0.0.1-SNAPSHOT/_remote.repositories @@ -1,3 +1,3 @@ #NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice. -#Fri Feb 20 18:12:31 CST 2026 +#Fri Feb 20 18:33:50 CST 2026 fundplatform-0.0.1-SNAPSHOT.pom>= diff --git a/.mvn/repository/com/fundplatform/fundplatform/0.0.1-SNAPSHOT/maven-metadata-local.xml b/.mvn/repository/com/fundplatform/fundplatform/0.0.1-SNAPSHOT/maven-metadata-local.xml index c0e275e..2cc0b6d 100644 --- a/.mvn/repository/com/fundplatform/fundplatform/0.0.1-SNAPSHOT/maven-metadata-local.xml +++ b/.mvn/repository/com/fundplatform/fundplatform/0.0.1-SNAPSHOT/maven-metadata-local.xml @@ -3,7 +3,7 @@ com.fundplatform fundplatform - 20260220101230 + 20260220103348 true @@ -11,7 +11,7 @@ pom 0.0.1-SNAPSHOT - 20260220101230 + 20260220103348 diff --git a/.mvn/repository/com/fundplatform/fundplatform/maven-metadata-local.xml b/.mvn/repository/com/fundplatform/fundplatform/maven-metadata-local.xml index 9165a2b..f85cee8 100644 --- a/.mvn/repository/com/fundplatform/fundplatform/maven-metadata-local.xml +++ b/.mvn/repository/com/fundplatform/fundplatform/maven-metadata-local.xml @@ -6,6 +6,6 @@ 0.0.1-SNAPSHOT - 20260220101230 + 20260220103348 diff --git a/.mvn/repository/org/apache/maven/plugins/maven-clean-plugin/3.3.2/m2e-lastUpdated.properties b/.mvn/repository/org/apache/maven/plugins/maven-clean-plugin/3.3.2/m2e-lastUpdated.properties index d0b2e0c..bb03949 100644 --- a/.mvn/repository/org/apache/maven/plugins/maven-clean-plugin/3.3.2/m2e-lastUpdated.properties +++ b/.mvn/repository/org/apache/maven/plugins/maven-clean-plugin/3.3.2/m2e-lastUpdated.properties @@ -1,2 +1,2 @@ -#Fri Feb 20 11:21:39 CST 2026 -central|https\://repo1.maven.org/maven2|null=1771557699084 +#Fri Feb 20 18:40:08 CST 2026 +central|https\://repo1.maven.org/maven2|null=1771584008125 diff --git a/.mvn/repository/org/apache/maven/plugins/maven-compiler-plugin/3.11.0/m2e-lastUpdated.properties b/.mvn/repository/org/apache/maven/plugins/maven-compiler-plugin/3.11.0/m2e-lastUpdated.properties index 663cac8..b3e1a24 100644 --- a/.mvn/repository/org/apache/maven/plugins/maven-compiler-plugin/3.11.0/m2e-lastUpdated.properties +++ b/.mvn/repository/org/apache/maven/plugins/maven-compiler-plugin/3.11.0/m2e-lastUpdated.properties @@ -1,2 +1,2 @@ -#Fri Feb 20 11:21:39 CST 2026 -central|https\://repo1.maven.org/maven2|null=1771557699091 +#Fri Feb 20 18:40:08 CST 2026 +central|https\://repo1.maven.org/maven2|null=1771584008166 diff --git a/.mvn/repository/org/apache/maven/plugins/maven-deploy-plugin/3.1.1/m2e-lastUpdated.properties b/.mvn/repository/org/apache/maven/plugins/maven-deploy-plugin/3.1.1/m2e-lastUpdated.properties index e25c08b..24de30d 100644 --- a/.mvn/repository/org/apache/maven/plugins/maven-deploy-plugin/3.1.1/m2e-lastUpdated.properties +++ b/.mvn/repository/org/apache/maven/plugins/maven-deploy-plugin/3.1.1/m2e-lastUpdated.properties @@ -1,2 +1,2 @@ -#Fri Feb 20 11:21:39 CST 2026 -central|https\://repo1.maven.org/maven2|null=1771557699097 +#Fri Feb 20 18:40:08 CST 2026 +central|https\://repo1.maven.org/maven2|null=1771584008178 diff --git a/.mvn/repository/org/apache/maven/plugins/maven-install-plugin/3.1.1/m2e-lastUpdated.properties b/.mvn/repository/org/apache/maven/plugins/maven-install-plugin/3.1.1/m2e-lastUpdated.properties index 461661b..a8ce277 100644 --- a/.mvn/repository/org/apache/maven/plugins/maven-install-plugin/3.1.1/m2e-lastUpdated.properties +++ b/.mvn/repository/org/apache/maven/plugins/maven-install-plugin/3.1.1/m2e-lastUpdated.properties @@ -1,2 +1,2 @@ -#Fri Feb 20 11:21:39 CST 2026 -central|https\://repo1.maven.org/maven2|null=1771557699096 +#Fri Feb 20 18:40:08 CST 2026 +central|https\://repo1.maven.org/maven2|null=1771584008176 diff --git a/.mvn/repository/org/apache/maven/plugins/maven-jar-plugin/3.3.0/m2e-lastUpdated.properties b/.mvn/repository/org/apache/maven/plugins/maven-jar-plugin/3.3.0/m2e-lastUpdated.properties index 6800127..4c04b50 100644 --- a/.mvn/repository/org/apache/maven/plugins/maven-jar-plugin/3.3.0/m2e-lastUpdated.properties +++ b/.mvn/repository/org/apache/maven/plugins/maven-jar-plugin/3.3.0/m2e-lastUpdated.properties @@ -1,2 +1,2 @@ -#Fri Feb 20 11:21:39 CST 2026 -central|https\://repo1.maven.org/maven2|null=1771557699093 +#Fri Feb 20 18:40:08 CST 2026 +central|https\://repo1.maven.org/maven2|null=1771584008171 diff --git a/.mvn/repository/org/apache/maven/plugins/maven-resources-plugin/3.3.1/m2e-lastUpdated.properties b/.mvn/repository/org/apache/maven/plugins/maven-resources-plugin/3.3.1/m2e-lastUpdated.properties index f42d137..b7fc38a 100644 --- a/.mvn/repository/org/apache/maven/plugins/maven-resources-plugin/3.3.1/m2e-lastUpdated.properties +++ b/.mvn/repository/org/apache/maven/plugins/maven-resources-plugin/3.3.1/m2e-lastUpdated.properties @@ -1,2 +1,2 @@ -#Fri Feb 20 11:21:39 CST 2026 -central|https\://repo1.maven.org/maven2|null=1771557699090 +#Fri Feb 20 18:40:08 CST 2026 +central|https\://repo1.maven.org/maven2|null=1771584008165 diff --git a/.mvn/repository/org/apache/maven/plugins/maven-site-plugin/3.12.1/m2e-lastUpdated.properties b/.mvn/repository/org/apache/maven/plugins/maven-site-plugin/3.12.1/m2e-lastUpdated.properties index 66d35d6..49a069b 100644 --- a/.mvn/repository/org/apache/maven/plugins/maven-site-plugin/3.12.1/m2e-lastUpdated.properties +++ b/.mvn/repository/org/apache/maven/plugins/maven-site-plugin/3.12.1/m2e-lastUpdated.properties @@ -1,2 +1,2 @@ -#Fri Feb 20 11:21:39 CST 2026 -central|https\://repo1.maven.org/maven2|null=1771557699098 +#Fri Feb 20 18:40:08 CST 2026 +central|https\://repo1.maven.org/maven2|null=1771584008180 diff --git a/.mvn/repository/org/apache/maven/plugins/maven-surefire-plugin/3.1.2/m2e-lastUpdated.properties b/.mvn/repository/org/apache/maven/plugins/maven-surefire-plugin/3.1.2/m2e-lastUpdated.properties index a004257..93d13c8 100644 --- a/.mvn/repository/org/apache/maven/plugins/maven-surefire-plugin/3.1.2/m2e-lastUpdated.properties +++ b/.mvn/repository/org/apache/maven/plugins/maven-surefire-plugin/3.1.2/m2e-lastUpdated.properties @@ -1,2 +1,2 @@ -#Fri Feb 20 11:21:39 CST 2026 -central|https\://repo1.maven.org/maven2|null=1771557699092 +#Fri Feb 20 18:40:08 CST 2026 +central|https\://repo1.maven.org/maven2|null=1771584008169 diff --git a/.mvn/repository/org/springframework/boot/spring-boot-maven-plugin/3.2.0/m2e-lastUpdated.properties b/.mvn/repository/org/springframework/boot/spring-boot-maven-plugin/3.2.0/m2e-lastUpdated.properties index 911888b..a50a2c4 100644 --- a/.mvn/repository/org/springframework/boot/spring-boot-maven-plugin/3.2.0/m2e-lastUpdated.properties +++ b/.mvn/repository/org/springframework/boot/spring-boot-maven-plugin/3.2.0/m2e-lastUpdated.properties @@ -1,2 +1,2 @@ -#Fri Feb 20 11:21:39 CST 2026 -central|https\://repo1.maven.org/maven2|null=1771557699094 +#Fri Feb 20 18:40:08 CST 2026 +central|https\://repo1.maven.org/maven2|null=1771584008173 diff --git a/fund-common/src/main/java/com/fundplatform/common/loadbalancer/TenantAwareLoadBalancer.java b/fund-common/src/main/java/com/fundplatform/common/loadbalancer/TenantAwareLoadBalancer.java index 646aabb..e58d612 100644 --- a/fund-common/src/main/java/com/fundplatform/common/loadbalancer/TenantAwareLoadBalancer.java +++ b/fund-common/src/main/java/com/fundplatform/common/loadbalancer/TenantAwareLoadBalancer.java @@ -62,6 +62,12 @@ public class TenantAwareLoadBalancer implements ReactorServiceInstanceLoadBalanc @Override public Mono> choose(Request request) { + // 如果 serviceId 为 null,直接返回空响应 + if (serviceId == null || serviceId.isEmpty()) { + logger.warn("[TenantLB] serviceId 为空,无法进行负载均衡"); + return Mono.just(new EmptyResponse()); + } + // 检查是否启用租户路由 if (routingProperties != null && !routingProperties.isEnabled()) { logger.debug("[TenantLB] 租户路由已禁用,使用默认路由"); diff --git a/fund-common/src/main/java/com/fundplatform/common/loadbalancer/TenantLoadBalancerAutoConfig.java b/fund-common/src/main/java/com/fundplatform/common/loadbalancer/TenantLoadBalancerAutoConfig.java index acfb4a6..3bfea35 100644 --- a/fund-common/src/main/java/com/fundplatform/common/loadbalancer/TenantLoadBalancerAutoConfig.java +++ b/fund-common/src/main/java/com/fundplatform/common/loadbalancer/TenantLoadBalancerAutoConfig.java @@ -3,6 +3,7 @@ package com.fundplatform.common.loadbalancer; import com.fundplatform.common.config.TenantRoutingProperties; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClients; import org.springframework.cloud.loadbalancer.core.ReactorServiceInstanceLoadBalancer; import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier; import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory; @@ -30,10 +31,23 @@ import org.springframework.core.env.Environment; */ @Configuration @ConditionalOnProperty(name = "tenant.routing.enabled", havingValue = "true", matchIfMissing = true) +@LoadBalancerClients(defaultConfiguration = TenantLoadBalancerConfig.class) public class TenantLoadBalancerAutoConfig { @Autowired(required = false) private TenantRoutingProperties routingProperties; +} + +/** + * 租户感知负载均衡器配置类 + * + *

为每个服务创建租户感知的负载均衡器实例

+ */ +@Configuration +class TenantLoadBalancerConfig { + + @Autowired(required = false) + private TenantRoutingProperties routingProperties; /** * 注册租户感知负载均衡器 diff --git a/fund-gateway/pom.xml b/fund-gateway/pom.xml index 74bbdca..1044488 100644 --- a/fund-gateway/pom.xml +++ b/fund-gateway/pom.xml @@ -35,6 +35,12 @@ 4.0.0 + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + org.springframework.boot diff --git a/fund-gateway/src/main/resources/application.yml b/fund-gateway/src/main/resources/application.yml index 93d95da..633bb6f 100644 --- a/fund-gateway/src/main/resources/application.yml +++ b/fund-gateway/src/main/resources/application.yml @@ -71,7 +71,8 @@ spring: - id: fund-cust uri: lb://fund-cust predicates: - - Path=/cust/** + - Path=/cust/**Default Namespace + filters: - StripPrefix=1 @@ -128,16 +129,7 @@ logging: org.springframework.cloud.gateway: DEBUG com.fundplatform.common.loadbalancer: DEBUG -# 多租户路由配置(Gateway 全局配置) +# 多租户路由配置 tenant: routing: enabled: true - tenant-header: X-Tenant-Id - default-tenant-id: "1" - # 共享服务列表(不需要租户路由的服务) - shared-services: - - fund-gateway - - fund-report - - fund-file - # 默认回退策略 - fallback-to-shared: true