diff --git a/joylive-plugin/joylive-router/joylive-router-springcloud3/src/main/java/com/jd/live/agent/plugin/router/springcloud/v3/request/AbstractClusterRequest.java b/joylive-plugin/joylive-router/joylive-router-springcloud3/src/main/java/com/jd/live/agent/plugin/router/springcloud/v3/request/AbstractClusterRequest.java index c790f5b1..ee0d916a 100644 --- a/joylive-plugin/joylive-router/joylive-router-springcloud3/src/main/java/com/jd/live/agent/plugin/router/springcloud/v3/request/AbstractClusterRequest.java +++ b/joylive-plugin/joylive-router/joylive-router-springcloud3/src/main/java/com/jd/live/agent/plugin/router/springcloud/v3/request/AbstractClusterRequest.java @@ -26,6 +26,7 @@ import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.util.MultiValueMap; +import java.net.URI; import java.util.HashSet; import java.util.Map; import java.util.Set; @@ -89,22 +90,14 @@ public abstract class AbstractClusterRequest extends AbstractHttpOutboundRequ protected CacheObject stickyId; - /** - * Constructs a new ClientOutboundRequest with the specified parameters. - * - * @param request The original client request to be processed. - * @param loadBalancerFactory A factory for creating instances of ReactiveLoadBalancer for service instances. - */ - public AbstractClusterRequest(T request, - ReactiveLoadBalancer.Factory loadBalancerFactory) { - this(request, loadBalancerFactory, null); - } - public AbstractClusterRequest(T request, + URI uri, ReactiveLoadBalancer.Factory loadBalancerFactory, LoadBalancerProperties properties) { super(request); + this.uri = uri; this.loadBalancerFactory = loadBalancerFactory; + // depend on url this.properties = buildProperties(properties); } diff --git a/joylive-plugin/joylive-router/joylive-router-springcloud3/src/main/java/com/jd/live/agent/plugin/router/springcloud/v3/request/BlockingClusterRequest.java b/joylive-plugin/joylive-router/joylive-router-springcloud3/src/main/java/com/jd/live/agent/plugin/router/springcloud/v3/request/BlockingClusterRequest.java index 5ee9a094..c423f6e0 100644 --- a/joylive-plugin/joylive-router/joylive-router-springcloud3/src/main/java/com/jd/live/agent/plugin/router/springcloud/v3/request/BlockingClusterRequest.java +++ b/joylive-plugin/joylive-router/joylive-router-springcloud3/src/main/java/com/jd/live/agent/plugin/router/springcloud/v3/request/BlockingClusterRequest.java @@ -62,8 +62,7 @@ public BlockingClusterRequest(HttpRequest request, LoadBalancerProperties properties, byte[] body, ClientHttpRequestExecution execution) { - super(request, loadBalancerFactory, properties); - this.uri = request.getURI(); + super(request, request.getURI(), loadBalancerFactory, properties); this.body = body; this.execution = execution; this.writeableHeaders = HttpHeaders.writableHttpHeaders(request.getHeaders()); diff --git a/joylive-plugin/joylive-router/joylive-router-springcloud3/src/main/java/com/jd/live/agent/plugin/router/springcloud/v3/request/FeignClusterRequest.java b/joylive-plugin/joylive-router/joylive-router-springcloud3/src/main/java/com/jd/live/agent/plugin/router/springcloud/v3/request/FeignClusterRequest.java index c32ae83b..28ed13d2 100644 --- a/joylive-plugin/joylive-router/joylive-router-springcloud3/src/main/java/com/jd/live/agent/plugin/router/springcloud/v3/request/FeignClusterRequest.java +++ b/joylive-plugin/joylive-router/joylive-router-springcloud3/src/main/java/com/jd/live/agent/plugin/router/springcloud/v3/request/FeignClusterRequest.java @@ -64,9 +64,8 @@ public FeignClusterRequest(Request request, ReactiveLoadBalancer.Factory loadBalancerClientFactory, LoadBalancerProperties properties, Request.Options options) { - super(request, loadBalancerClientFactory, properties); + super(request, URI.create(request.url()), loadBalancerClientFactory, properties); this.options = options; - this.uri = URI.create(request.url()); } @Override diff --git a/joylive-plugin/joylive-router/joylive-router-springcloud3/src/main/java/com/jd/live/agent/plugin/router/springcloud/v3/request/ReactiveClusterRequest.java b/joylive-plugin/joylive-router/joylive-router-springcloud3/src/main/java/com/jd/live/agent/plugin/router/springcloud/v3/request/ReactiveClusterRequest.java index 7b7d4e9e..1cf3f9ae 100644 --- a/joylive-plugin/joylive-router/joylive-router-springcloud3/src/main/java/com/jd/live/agent/plugin/router/springcloud/v3/request/ReactiveClusterRequest.java +++ b/joylive-plugin/joylive-router/joylive-router-springcloud3/src/main/java/com/jd/live/agent/plugin/router/springcloud/v3/request/ReactiveClusterRequest.java @@ -51,8 +51,7 @@ public ReactiveClusterRequest(ClientRequest request, ReactiveLoadBalancer.Factory loadBalancerFactory, LoadBalancerProperties properties, ExchangeFunction next) { - super(request, loadBalancerFactory, properties); - this.uri = request.url(); + super(request, request.url(), loadBalancerFactory, properties); this.next = next; this.writeableHeaders = HttpHeaders.writableHttpHeaders(request.headers()); } diff --git a/joylive-plugin/joylive-router/joylive-router-springgateway3/src/main/java/com/jd/live/agent/plugin/router/springgateway/v3/request/GatewayClusterRequest.java b/joylive-plugin/joylive-router/joylive-router-springgateway3/src/main/java/com/jd/live/agent/plugin/router/springgateway/v3/request/GatewayClusterRequest.java index 32832cb7..851dea12 100644 --- a/joylive-plugin/joylive-router/joylive-router-springgateway3/src/main/java/com/jd/live/agent/plugin/router/springgateway/v3/request/GatewayClusterRequest.java +++ b/joylive-plugin/joylive-router/joylive-router-springgateway3/src/main/java/com/jd/live/agent/plugin/router/springgateway/v3/request/GatewayClusterRequest.java @@ -65,13 +65,12 @@ public GatewayClusterRequest(ServerWebExchange exchange, GatewayConfig gatewayConfig, RetryConfig retryConfig, int index) { - super(exchange.getRequest(), factory, null); + super(exchange.getRequest(), exchange.getAttributeOrDefault(GATEWAY_REQUEST_URL_ATTR, exchange.getRequest().getURI()), factory, null); this.exchange = exchange; this.chain = chain; this.retryConfig = retryConfig; this.gatewayConfig = gatewayConfig; this.index = index; - this.uri = exchange.getAttributeOrDefault(GATEWAY_REQUEST_URL_ATTR, exchange.getRequest().getURI()); this.writeableHeaders = HttpHeaders.writableHttpHeaders(request.getHeaders()); }