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 上是接受请求