我有一个网关,一个Eureka服务器和3个微服务。
当我尝试使用网关时,我每次都会得到Http状态200。
当我尝试向未在RouteLocator中定义的路径发送请求时,我得到一个404,这很好,并让我知道RouteLocator中存在该路由。
但是请求不会被重定向到指定的微服务。我知道这一点,因为数据库中没有任何更改,微服务日志中也没有发生任何变化。
我在网关里做了一条路由:
@Bean
public RouteLocator routes(RouteLocatorBuilder builder){
return builder.routes()
.route(r -> r
.path("/auth")
.filters(f->f.stripPrefix(1))
.uri("http://user-songsMS/")
.id("userModule")).build();
}我还尝试在application.yml中配置路由:
spring:
application:
name: api-gateway-songsMS
cloud:
gateway:
routes:
- id: userModule
uri: http://user-songsMS/
- Path=/auth/**这应该重定向到eureka服务器,并且eureka服务器应该将其重定向到user-module。用户模块在eureka服务器中注册:
我还尝试更改RouteLocator中的uri,以便直接路由到用户模块(它位于端口8083:没有更改)。
发布于 2020-07-23 22:29:38
假设您正在使用Spring Cloud Gateway,您将uri指定为"http://user-songsMS/"“。它们的格式应为"lb://user-songsMS/”以通过Eureka。
发布于 2020-08-04 20:26:31
我继续我的项目中的其他事情,一段时间后,我遇到了几个奇怪的问题,比如代码更改没有效果,路由无法识别,应用程序名称无法识别,无法连接到我的configserver等等。
解决方案是删除.idea文件夹,并将整个项目复制到另一个位置。然后用.pom文件打开根项目和微服务。
之后,我对根项目和每个微服务执行了mvn clean和mvn install。
现在一切都正常了。
https://stackoverflow.com/questions/63056122
复制相似问题