@Override
    public Client enrich(final Client finalDelegate) {
        return (request, options) -> {
            Client delegate = finalDelegate;
            final URI originalUri = URI.create(request.url());
            String serviceId = originalUri.getHost();
            Assert.state(Objects.nonNull(serviceId), "Request URI does not contain a valid hostname: " + originalUri);
            if (finalDelegate instanceof FeignBlockingLoadBalancerClient) {
                delegate = ((FeignBlockingLoadBalancerClient) finalDelegate).getDelegate();
            } else if (finalDelegate instanceof RetryableFeignBlockingLoadBalancerClient) {
                delegate = ((RetryableFeignBlockingLoadBalancerClient) finalDelegate).getDelegate();
            }
            final ShenyuDiscoveryClient shenyuDiscoveryClient = beanFactory.getBean(ShenyuDiscoveryClient.class);
            final ServiceInstance serviceInstance = shenyuDiscoveryClient.getInstance(serviceId);
            String reconstructedUrl = LoadBalancerUriTools.reconstructURI(serviceInstance, originalUri).toString();
            Request newRequest = buildRequest(request, reconstructedUrl);
            LOGGER.info("shenyuClientCapability enrich client execute Uri {} to {}", originalUri, reconstructedUrl);
            return delegate.execute(newRequest, options);
        };
    }
custom a shenyu client capability to enrich clients.
shenyu-sdk/shenyu-sdk-feign/src/main/java/org/apache/shenyu/sdk/feign/ShenyuClientCapability.java