From 18c285bb25e33c86a407335c0b41439db29cfa08 Mon Sep 17 00:00:00 2001 From: Haotian Zhang <928016560@qq.com> Date: Tue, 8 Aug 2023 17:43:40 +0800 Subject: [PATCH] fix:fix feign report -1 port bug. --- CHANGELOG.md | 1 + .../core/EncodeTransferMedataFeignInterceptorTest.java | 4 ++-- .../cloud/rpc/enhancement/feign/EnhancedFeignClient.java | 8 +++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 22e3d2bc..3aa7e91b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,3 +23,4 @@ - fix:fix web server wrong open bug. - fix:add deregister judgment. - feat:added ribbon lb polaris weighted round robin rule. +- fix:fix feign report -1 port bug. diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/EncodeTransferMedataFeignInterceptorTest.java b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/EncodeTransferMedataFeignInterceptorTest.java index 51337d8b..ace36e94 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/EncodeTransferMedataFeignInterceptorTest.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/test/java/com/tencent/cloud/metadata/core/EncodeTransferMedataFeignInterceptorTest.java @@ -47,7 +47,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen @ExtendWith(SpringExtension.class) @SpringBootTest(webEnvironment = DEFINED_PORT, classes = EncodeTransferMedataFeignInterceptorTest.TestApplication.class, - properties = {"server.port=8081", + properties = {"server.port=18081", "spring.config.location = classpath:application-test.yml", "spring.main.web-application-type = servlet", "spring.cloud.gateway.enabled = false"}) @@ -77,7 +77,7 @@ public class EncodeTransferMedataFeignInterceptorTest { return MetadataContextHolder.get().getContext(MetadataContext.FRAGMENT_TRANSITIVE, "b"); } - @FeignClient(name = "test-feign", url = "http://localhost:8081") + @FeignClient(name = "test-feign", url = "http://localhost:18081") public interface TestFeign { @RequestMapping("/test") diff --git a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedFeignClient.java b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedFeignClient.java index d09f77ae..f50e5df5 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedFeignClient.java +++ b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedFeignClient.java @@ -71,7 +71,13 @@ public class EnhancedFeignClient implements Client { enhancedPluginContext.setLocalServiceInstance(pluginRunner.getLocalServiceInstance()); DefaultServiceInstance serviceInstance = new DefaultServiceInstance(request.requestTemplate().feignTarget() .name(), url.getHost(), url.getPort(), url.getScheme().equals("https")); - enhancedPluginContext.setTargetServiceInstance(serviceInstance, url); + // -1 means access directly by url + if (serviceInstance.getPort() == -1) { + enhancedPluginContext.setTargetServiceInstance(null, url); + } + else { + enhancedPluginContext.setTargetServiceInstance(serviceInstance, url); + } // Run pre enhanced plugins. pluginRunner.run(EnhancedPluginType.Client.PRE, enhancedPluginContext);