From f9f40b362acd7dabfd8ea23b6af766d61bc3536c Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Tue, 27 May 2025 16:43:49 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20gateway-=E8=BF=9C=E7=A8=8B?= =?UTF-8?q?=E8=B0=83=E7=94=A8=E8=BF=87=E7=BD=91=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cloud-demo/ReadMe.md | 20 +++++++++++++++++++ .../cn/bunny/gateway/filter/RTFilter.java | 2 +- .../service/feign/ProductFeignClient.java | 3 ++- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/cloud-demo/ReadMe.md b/cloud-demo/ReadMe.md index 2bb3aaf..b4a3451 100644 --- a/cloud-demo/ReadMe.md +++ b/cloud-demo/ReadMe.md @@ -1412,3 +1412,23 @@ spring: ``` 2. **负载均衡**:确保正确配置服务发现和负载均衡器 + +3. **远程调用是否过网关** + +正常的远程调用是不过网关的,毕竟直接调用nacos中服务就行,多走一遍路没什么意思,如果非要过网关可以按照下面格式: + +将`value`值修改为`gateway`,通常不建议过网关。 + +```java +// Feign 客户端 +// @FeignClient(value = "service-product", path = "/api/product", fallback = ProductFeignClientFallback.class) +@FeignClient(value = "gateway", path = "/api/product", fallback = ProductFeignClientFallback.class) +public interface ProductFeignClient { + + // 标注在 Controller 上是接受请求 + // 标注在 FeignClient 时发送请求 + @GetMapping("{id}") + Product getProduct(@PathVariable("id") Long productId); + +} +``` diff --git a/cloud-demo/gateway/src/main/java/cn/bunny/gateway/filter/RTFilter.java b/cloud-demo/gateway/src/main/java/cn/bunny/gateway/filter/RTFilter.java index 8f6dbe7..b5849b5 100644 --- a/cloud-demo/gateway/src/main/java/cn/bunny/gateway/filter/RTFilter.java +++ b/cloud-demo/gateway/src/main/java/cn/bunny/gateway/filter/RTFilter.java @@ -20,7 +20,7 @@ public class RTFilter implements GlobalFilter, Ordered { ServerHttpRequest request = exchange.getRequest(); URI uri = request.getURI(); long start = System.currentTimeMillis(); - log.error("请求【{}】开始时间:{}", uri, start); + log.info("请求【{}】开始时间:{}", uri, start); // 处理逻辑 // return chain.filter(exchange) diff --git a/cloud-demo/services/service-order/src/main/java/cn/bunny/service/feign/ProductFeignClient.java b/cloud-demo/services/service-order/src/main/java/cn/bunny/service/feign/ProductFeignClient.java index 9e4e6fa..1374f7c 100644 --- a/cloud-demo/services/service-order/src/main/java/cn/bunny/service/feign/ProductFeignClient.java +++ b/cloud-demo/services/service-order/src/main/java/cn/bunny/service/feign/ProductFeignClient.java @@ -7,7 +7,8 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; // Feign 客户端 -@FeignClient(value = "service-product", path = "/api/product", fallback = ProductFeignClientFallback.class) +// @FeignClient(value = "service-product", path = "/api/product", fallback = ProductFeignClientFallback.class) +@FeignClient(value = "gateway", path = "/api/product", fallback = ProductFeignClientFallback.class) public interface ProductFeignClient { // 标注在 Controller 上是接受请求