问答

springcloud gateway 路由配置问题

作者:admin 2021-06-29 我要评论

使用nacos作为配置和注册中心,spring cloud版本是Hoxton.SR3, spring-cloud-alibaba版本是2.2.1.RELEASE,nacos版本是1.3.1-BETA。 gateway使用了像下面这样的...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

使用nacos作为配置和注册中心,spring cloud版本是Hoxton.SR3,
spring-cloud-alibaba版本是2.2.1.RELEASE,nacos版本是1.3.1-BETA。

gateway使用了像下面这样的路由配置:

      routes:
        - id: service-one
          uri: lb://service-one
          predicates:
            - Path=/service/**

请求/service/** 404,但是请求/service-one/**就没问题,这是什么情况?

这是工程结构:
image

这是gateway的启动类:

@SpringBootApplication
@EnableDiscoveryClient
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

这是gateway的配置文件:

server:
  port: 8001

spring:
  application:
    name: gateway
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
      discovery:
        server-addr: 127.0.0.1:8848
    gateway:
      discovery:
        locator:
          enabled: true
      routes:
        - id: service-one
          uri: lb://service-one
          predicates:
            - Path=/service/**

这是service-one的启动类:

@SpringBootApplication
@EnableFeignClients
@RestController
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @RequestMapping("/test/map")
    public Map<String, String> test() {
        Map<String, String> map = new HashMap<>();
        map.put("hello", "nihao");
        return map;
    }
}

这是service-one的配置文件:

server:
  port: 8002

spring:
  application:
    name: service-one
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
      discovery:
        server-addr: 127.0.0.1:8848
###

需要把前缀的service去掉,或者是在service-one这个服务里uri加上service
gateway的filters里的

StripPrefixGatewayFilterFactory
      routes:
        - id: service-one
          uri: lb://service-one
          predicates:
            - Path=/service/**
          filters:
            - StripPrefix=1
###

额,不是服务启动写入到nacos,gateway读取到nacos中到路由吗

好像Route是用ID来区分到,你尝试吧ID的service-one换成service试试

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • springcloud gateway 路由配置问题

    springcloud gateway 路由配置问题

  • iOS 证券APP我的持仓左右滑动效果如何

    iOS 证券APP我的持仓左右滑动效果如何

  • Print.js打印阿里图标字体不显示什么原

    Print.js打印阿里图标字体不显示什么原

  • DolphinDB升级怎么操作比较简捷

    DolphinDB升级怎么操作比较简捷

腾讯云代理商
海外云服务器