整和gateway和nacos出现的一些问题 1,jar包版本不对,springcloud 和springboot的版本不一致 2,springboot和nacos的版本不一致 spring-cloud-starter-alibaba-nacos-discovery2.2.2 版本 spring-cloud-starter-gateway2.2.1版本没有问题, 但是spring-cloud-starter-gateway若用2.2.2 就报错 3,出现的nacos不能发现getway的问题 原因是yml的配置出错 discovery: locator: enabled: true # 让gateway可以发现nacos中的微服务 如果没有写上面的配置则不能发现gateway的配置 但是若是使用 uri: http://localhost:8762 这样的配置还是可以运行 4,predicates: - Path=/get/** get在这里表示服务器的地址,所以filters: - StripPrefix=1 必须要写,否则不能发现 5, - id: gatewayone 当多个服务的时候的id可以随便写,但是id不能重复,否则会错
另外还可以通过config配置通过下面的代码来实现配置
@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
return builder.routes()
//增加一个path匹配,以"/gateway/hello/"开头的请求都在此路由
.route(r -> r.path("/get/**")
//表示将路径中的第一级参数删除,用剩下的路径与provider的路径做拼接,
//这里就是"lb://provider/hello/",能匹配到provider的HelloController的路径
.filters(f -> f.stripPrefix(1)
//.filter(new LimitFilter(10,1, Duration.ofSeconds(1))) //限流设置
//在请求的header中添加一个key&value
.addRequestHeader("extendtag", "geteway-" + System.currentTimeMillis()))
//指定匹配服务provider,lb是load balance的意思
.uri("lb://nacosserver")).
//.uri("http://localhost:8762")).
build();
}

本文介绍了在Spring Boot项目中,将Nacos与Gateway整合过程中遇到的问题及详细的解决步骤,通过配置代码实现了动态路由的管理。

8571

被折叠的 条评论
为什么被折叠?



