diff --git a/src/main/java/com/sczx/gateway/component/DynamicRouteScheduler.java b/src/main/java/com/sczx/gateway/component/DynamicRouteScheduler.java index 673ebad..76a3a21 100644 --- a/src/main/java/com/sczx/gateway/component/DynamicRouteScheduler.java +++ b/src/main/java/com/sczx/gateway/component/DynamicRouteScheduler.java @@ -2,6 +2,7 @@ package com.sczx.gateway.component; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.cloud.gateway.event.RefreshRoutesEvent; import org.springframework.context.ApplicationEventPublisher; import org.springframework.scheduling.annotation.Scheduled; @@ -14,6 +15,9 @@ public class DynamicRouteScheduler { @Autowired private ApplicationEventPublisher publisher; + @Autowired + private DiscoveryClient discoveryClient; + // 每30秒刷新一次路由(可按需调整) @Scheduled(fixedRate = 30_000) public void refreshRoutes() { diff --git a/src/main/java/com/sczx/gateway/config/CustomRouteConfig.java b/src/main/java/com/sczx/gateway/config/CustomRouteConfig.java index 4b9ac65..b100c88 100644 --- a/src/main/java/com/sczx/gateway/config/CustomRouteConfig.java +++ b/src/main/java/com/sczx/gateway/config/CustomRouteConfig.java @@ -33,6 +33,9 @@ public class CustomRouteConfig { .route("sczx-car", r -> r.path("/zc/car/**") .filters(f -> f.rewritePath("/zc/car/(?.*)", "/${segment}")) .uri(uriWithCustomLoadBalance("sczx-car"))) + .route("sczx-order", r -> r.path("/zc/order/**") + .filters(f -> f.rewritePath("/zc/order/(?.*)", "/${segment}")) + .uri(uriWithCustomLoadBalance("sczx-order"))) .build(); // .route("sczx_user", r -> r.path("/zc/user/**") // .uri("lb://sczx_user")) @@ -44,6 +47,7 @@ public class CustomRouteConfig { private URI uriWithCustomLoadBalance(String serviceName) { + log.info("{} ,开始负载均衡路由", serviceName); List instances = discoveryClient.getInstances(serviceName); if (instances == null || instances.isEmpty()) { throw new RuntimeException("No available instances for service: " + serviceName);