我无法弄清楚spring-cloud-gateway是否支持从consul注册表中读取路由,就像Zuul一样。
我添加了spring-cloud-starter-consul-discovery依赖项和@EnableDiscoveryClient,并在application.yml中配置了consul属性,hovewer,/ actuator / gateway / routes没有显示来自consul的任何路由
我还试图设置 spring.cloud.gateway.discovery.locator.enabled:true ,但没有改变任何东西。 以下示例示例:
[self.view layoutIfNeeded];
所以主要问题是,它甚至可以设想工作吗?
编辑:可能应该提到它是版本2.0.0.M5。,使用Spring Boot 2.0.0.M7
我也用--debug推出了这一行:
spring:
cloud:
consul:
discovery:
register: false
locator:
enabled: true
acl-token: d3ee84e2-c99a-5d84-e4bf-b2cefd7671ba
enabled: true
答案 0 :(得分:0)
我可以通过声明以下bean来解决它: DiscoveryClientRouteDefinitionLocator (reference)
@Configuration
@EnableDiscoveryClient
public class AutoRouting {
@Bean
public DiscoveryClientRouteDefinitionLocator discoveryClientRouteDefinitionLocator(DiscoveryClient discoveryClient, DiscoveryLocatorProperties properties) {
return new DiscoveryClientRouteDefinitionLocator(discoveryClient, properties);
}
}
P.S:您需要包括“ spring-cloud-consul”