我正在尝试Spring Cloud Gateway(Finchley.M5)。然后我基于Springboot 2(2.0.0.M7)建立了这个简单的项目:
@RestController
)直接询问服务时,响应按预期到达:
但是当我尝试通过网关请求服务时,服务会收到请求(我向控制台打印了一条消息),但响应永远不会回到客户端:
该项目的回购已经结束:https://github.com/julianobrasil/spring-gateway-test
[编辑1]:所以你不必克隆上面的回购,看看代码是怎么回事,这里是:
@SpringBootApplication
@EnableDiscoveryClient
public class GatewayApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class, args);
}
@Bean
public RouteLocator routes(RouteLocatorBuilder builder) {
return builder.routes()
.route(r -> r.path("/service/**")
.rewritePath("/service/(?<path>.*)", "/${path}")
.uri("lb://mySimpleService"))
.build();
}
}
@RestController
public class MyController {
@GetMapping("/test")
Mono<String> getHello() {
System.out.println("I received a connection request");
return Mono.just("Hello, world!");
}
}
[编辑2]: Spring Cloud团队中有人克隆了我的回购并进行了测试。并报告说它工作得很好。显然测试是在linux系统中进行的(我在windows 10机器上运行它)。