fix: Gateway添加Nacos服务发现依赖,修复负载均衡器配置
1. fund-gateway pom.xml 添加 spring-cloud-starter-alibaba-nacos-discovery 依赖 2. TenantLoadBalancerAutoConfig 使用 @LoadBalancerClients 注解配置 3. TenantAwareLoadBalancer 增加 serviceId null 检查
This commit is contained in:
parent
a78ccaeae5
commit
52c926dcd6
@ -1,4 +1,4 @@
|
|||||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
#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.jar>=
|
||||||
fund-common-0.0.1-SNAPSHOT.pom>=
|
fund-common-0.0.1-SNAPSHOT.pom>=
|
||||||
|
|||||||
Binary file not shown.
@ -3,7 +3,7 @@
|
|||||||
<groupId>com.fundplatform</groupId>
|
<groupId>com.fundplatform</groupId>
|
||||||
<artifactId>fund-common</artifactId>
|
<artifactId>fund-common</artifactId>
|
||||||
<versioning>
|
<versioning>
|
||||||
<lastUpdated>20260220101230</lastUpdated>
|
<lastUpdated>20260220103348</lastUpdated>
|
||||||
<snapshot>
|
<snapshot>
|
||||||
<localCopy>true</localCopy>
|
<localCopy>true</localCopy>
|
||||||
</snapshot>
|
</snapshot>
|
||||||
@ -11,12 +11,12 @@
|
|||||||
<snapshotVersion>
|
<snapshotVersion>
|
||||||
<extension>pom</extension>
|
<extension>pom</extension>
|
||||||
<value>0.0.1-SNAPSHOT</value>
|
<value>0.0.1-SNAPSHOT</value>
|
||||||
<updated>20260220101230</updated>
|
<updated>20260220103348</updated>
|
||||||
</snapshotVersion>
|
</snapshotVersion>
|
||||||
<snapshotVersion>
|
<snapshotVersion>
|
||||||
<extension>jar</extension>
|
<extension>jar</extension>
|
||||||
<value>0.0.1-SNAPSHOT</value>
|
<value>0.0.1-SNAPSHOT</value>
|
||||||
<updated>20260220101230</updated>
|
<updated>20260220103348</updated>
|
||||||
</snapshotVersion>
|
</snapshotVersion>
|
||||||
</snapshotVersions>
|
</snapshotVersions>
|
||||||
</versioning>
|
</versioning>
|
||||||
|
|||||||
@ -6,6 +6,6 @@
|
|||||||
<versions>
|
<versions>
|
||||||
<version>0.0.1-SNAPSHOT</version>
|
<version>0.0.1-SNAPSHOT</version>
|
||||||
</versions>
|
</versions>
|
||||||
<lastUpdated>20260220101230</lastUpdated>
|
<lastUpdated>20260220103348</lastUpdated>
|
||||||
</versioning>
|
</versioning>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
#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>=
|
fundplatform-0.0.1-SNAPSHOT.pom>=
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
<groupId>com.fundplatform</groupId>
|
<groupId>com.fundplatform</groupId>
|
||||||
<artifactId>fundplatform</artifactId>
|
<artifactId>fundplatform</artifactId>
|
||||||
<versioning>
|
<versioning>
|
||||||
<lastUpdated>20260220101230</lastUpdated>
|
<lastUpdated>20260220103348</lastUpdated>
|
||||||
<snapshot>
|
<snapshot>
|
||||||
<localCopy>true</localCopy>
|
<localCopy>true</localCopy>
|
||||||
</snapshot>
|
</snapshot>
|
||||||
@ -11,7 +11,7 @@
|
|||||||
<snapshotVersion>
|
<snapshotVersion>
|
||||||
<extension>pom</extension>
|
<extension>pom</extension>
|
||||||
<value>0.0.1-SNAPSHOT</value>
|
<value>0.0.1-SNAPSHOT</value>
|
||||||
<updated>20260220101230</updated>
|
<updated>20260220103348</updated>
|
||||||
</snapshotVersion>
|
</snapshotVersion>
|
||||||
</snapshotVersions>
|
</snapshotVersions>
|
||||||
</versioning>
|
</versioning>
|
||||||
|
|||||||
@ -6,6 +6,6 @@
|
|||||||
<versions>
|
<versions>
|
||||||
<version>0.0.1-SNAPSHOT</version>
|
<version>0.0.1-SNAPSHOT</version>
|
||||||
</versions>
|
</versions>
|
||||||
<lastUpdated>20260220101230</lastUpdated>
|
<lastUpdated>20260220103348</lastUpdated>
|
||||||
</versioning>
|
</versioning>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
|||||||
@ -1,2 +1,2 @@
|
|||||||
#Fri Feb 20 11:21:39 CST 2026
|
#Fri Feb 20 18:40:08 CST 2026
|
||||||
central|https\://repo1.maven.org/maven2|null=1771557699084
|
central|https\://repo1.maven.org/maven2|null=1771584008125
|
||||||
|
|||||||
@ -1,2 +1,2 @@
|
|||||||
#Fri Feb 20 11:21:39 CST 2026
|
#Fri Feb 20 18:40:08 CST 2026
|
||||||
central|https\://repo1.maven.org/maven2|null=1771557699091
|
central|https\://repo1.maven.org/maven2|null=1771584008166
|
||||||
|
|||||||
@ -1,2 +1,2 @@
|
|||||||
#Fri Feb 20 11:21:39 CST 2026
|
#Fri Feb 20 18:40:08 CST 2026
|
||||||
central|https\://repo1.maven.org/maven2|null=1771557699097
|
central|https\://repo1.maven.org/maven2|null=1771584008178
|
||||||
|
|||||||
@ -1,2 +1,2 @@
|
|||||||
#Fri Feb 20 11:21:39 CST 2026
|
#Fri Feb 20 18:40:08 CST 2026
|
||||||
central|https\://repo1.maven.org/maven2|null=1771557699096
|
central|https\://repo1.maven.org/maven2|null=1771584008176
|
||||||
|
|||||||
@ -1,2 +1,2 @@
|
|||||||
#Fri Feb 20 11:21:39 CST 2026
|
#Fri Feb 20 18:40:08 CST 2026
|
||||||
central|https\://repo1.maven.org/maven2|null=1771557699093
|
central|https\://repo1.maven.org/maven2|null=1771584008171
|
||||||
|
|||||||
@ -1,2 +1,2 @@
|
|||||||
#Fri Feb 20 11:21:39 CST 2026
|
#Fri Feb 20 18:40:08 CST 2026
|
||||||
central|https\://repo1.maven.org/maven2|null=1771557699090
|
central|https\://repo1.maven.org/maven2|null=1771584008165
|
||||||
|
|||||||
@ -1,2 +1,2 @@
|
|||||||
#Fri Feb 20 11:21:39 CST 2026
|
#Fri Feb 20 18:40:08 CST 2026
|
||||||
central|https\://repo1.maven.org/maven2|null=1771557699098
|
central|https\://repo1.maven.org/maven2|null=1771584008180
|
||||||
|
|||||||
@ -1,2 +1,2 @@
|
|||||||
#Fri Feb 20 11:21:39 CST 2026
|
#Fri Feb 20 18:40:08 CST 2026
|
||||||
central|https\://repo1.maven.org/maven2|null=1771557699092
|
central|https\://repo1.maven.org/maven2|null=1771584008169
|
||||||
|
|||||||
@ -1,2 +1,2 @@
|
|||||||
#Fri Feb 20 11:21:39 CST 2026
|
#Fri Feb 20 18:40:08 CST 2026
|
||||||
central|https\://repo1.maven.org/maven2|null=1771557699094
|
central|https\://repo1.maven.org/maven2|null=1771584008173
|
||||||
|
|||||||
@ -62,6 +62,12 @@ public class TenantAwareLoadBalancer implements ReactorServiceInstanceLoadBalanc
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Mono<Response<ServiceInstance>> choose(Request request) {
|
public Mono<Response<ServiceInstance>> choose(Request request) {
|
||||||
|
// 如果 serviceId 为 null,直接返回空响应
|
||||||
|
if (serviceId == null || serviceId.isEmpty()) {
|
||||||
|
logger.warn("[TenantLB] serviceId 为空,无法进行负载均衡");
|
||||||
|
return Mono.just(new EmptyResponse());
|
||||||
|
}
|
||||||
|
|
||||||
// 检查是否启用租户路由
|
// 检查是否启用租户路由
|
||||||
if (routingProperties != null && !routingProperties.isEnabled()) {
|
if (routingProperties != null && !routingProperties.isEnabled()) {
|
||||||
logger.debug("[TenantLB] 租户路由已禁用,使用默认路由");
|
logger.debug("[TenantLB] 租户路由已禁用,使用默认路由");
|
||||||
|
|||||||
@ -3,6 +3,7 @@ package com.fundplatform.common.loadbalancer;
|
|||||||
import com.fundplatform.common.config.TenantRoutingProperties;
|
import com.fundplatform.common.config.TenantRoutingProperties;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
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.ReactorServiceInstanceLoadBalancer;
|
||||||
import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
|
import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
|
||||||
import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory;
|
import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory;
|
||||||
@ -30,10 +31,23 @@ import org.springframework.core.env.Environment;
|
|||||||
*/
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
@ConditionalOnProperty(name = "tenant.routing.enabled", havingValue = "true", matchIfMissing = true)
|
@ConditionalOnProperty(name = "tenant.routing.enabled", havingValue = "true", matchIfMissing = true)
|
||||||
|
@LoadBalancerClients(defaultConfiguration = TenantLoadBalancerConfig.class)
|
||||||
public class TenantLoadBalancerAutoConfig {
|
public class TenantLoadBalancerAutoConfig {
|
||||||
|
|
||||||
@Autowired(required = false)
|
@Autowired(required = false)
|
||||||
private TenantRoutingProperties routingProperties;
|
private TenantRoutingProperties routingProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 租户感知负载均衡器配置类
|
||||||
|
*
|
||||||
|
* <p>为每个服务创建租户感知的负载均衡器实例</p>
|
||||||
|
*/
|
||||||
|
@Configuration
|
||||||
|
class TenantLoadBalancerConfig {
|
||||||
|
|
||||||
|
@Autowired(required = false)
|
||||||
|
private TenantRoutingProperties routingProperties;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 注册租户感知负载均衡器
|
* 注册租户感知负载均衡器
|
||||||
|
|||||||
@ -35,6 +35,12 @@
|
|||||||
<version>4.0.0</version>
|
<version>4.0.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Nacos Service Discovery -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba.cloud</groupId>
|
||||||
|
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!-- Redis for Rate Limiting & Token Storage -->
|
<!-- Redis for Rate Limiting & Token Storage -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
|||||||
@ -71,7 +71,8 @@ spring:
|
|||||||
- id: fund-cust
|
- id: fund-cust
|
||||||
uri: lb://fund-cust
|
uri: lb://fund-cust
|
||||||
predicates:
|
predicates:
|
||||||
- Path=/cust/**
|
- Path=/cust/**Default Namespace
|
||||||
|
|
||||||
filters:
|
filters:
|
||||||
- StripPrefix=1
|
- StripPrefix=1
|
||||||
|
|
||||||
@ -128,16 +129,7 @@ logging:
|
|||||||
org.springframework.cloud.gateway: DEBUG
|
org.springframework.cloud.gateway: DEBUG
|
||||||
com.fundplatform.common.loadbalancer: DEBUG
|
com.fundplatform.common.loadbalancer: DEBUG
|
||||||
|
|
||||||
# 多租户路由配置(Gateway 全局配置)
|
# 多租户路由配置
|
||||||
tenant:
|
tenant:
|
||||||
routing:
|
routing:
|
||||||
enabled: true
|
enabled: true
|
||||||
tenant-header: X-Tenant-Id
|
|
||||||
default-tenant-id: "1"
|
|
||||||
# 共享服务列表(不需要租户路由的服务)
|
|
||||||
shared-services:
|
|
||||||
- fund-gateway
|
|
||||||
- fund-report
|
|
||||||
- fund-file
|
|
||||||
# 默认回退策略
|
|
||||||
fallback-to-shared: true
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user