GateWay问题记录
1. Nacos&GateWay
Section titled “1. Nacos&GateWay”在使用GateWay+Nacos配置网关时,需要添加以下依赖。
Nacos依赖
<!-- Nacos --><dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2023.0.1.2</version></dependency>GateWay网关依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </exclusion> </exclusions></dependency>去除 spring-boot-starter-web 的目的是避免引入不必要的 Web 相关组件,减少依赖体积,并避免与其他 Web 配置(如 WebFlux)产生冲突。spring-cloud-starter-gateway 本身是一个网关,负责请求的转发、路由等功能,不一定需要 Web 层的功能。它是基于 spring-webflux 实现的,这意味着它是非阻塞的,且不依赖传统的 Web 层(如 Spring MVC)。此外,如果已经使用 spring-boot-starter-webflux,就不需要 spring-boot-starter-web,否则会造成冲突。
2. 负载均衡依赖
Section titled “2. 负载均衡依赖”<!-- LoadBalancer --><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-loadbalancer</artifactId></dependency>在使用 uri: lb://ms-web-service 时,如果服务有多个实例,必须添加负载均衡依赖,才能确保请求能正确路由到各个实例。否则,虽然能找到服务名称,但无法正确请求到具体的实例。如果只有一个实例,负载均衡依赖就不需要引入,且 uri 应该直接指向该实例的具体 IP 地址。