最资讯丨springcloud gateway无法路由问题的解决
首页 > 综合 > 正文

最资讯丨springcloud gateway无法路由问题的解决

来源:脚本之家 2023-05-13 11:57:40

目录
前言描述问题分析原因springcloud gateway 的pom排除web解决思路独立的springcloud gateway总结

前言

昨天小伙伴问我springcloud gateway 无法路由转发的问题,现在记录一下


(资料图片)

现在企业微服务架构基本上都是用springcloud体系了,在国内基本上新项目都用springcloud alibaba,而且基本上都是所有服务聚合在一个父项目中。

springcloud gateway可以实现路由负载均衡等等功能,但是应用过程中,会有一些坑。

描述问题

配置的没问题如下:

server:
  port: 9999
spring:
  application:
    name: gateway-server
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.229.7:8848
    gateway:
      discovery:
        locator:
          enabled: true ##开启了会自动匹配路由规则
      routes: ##配置了手动路由规则,上面的自动开启失效
        - id: nacos-provider
          uri: lb://nacos-provider
          predicates:
            - Path=/mmm/**

provider代码:

@RestController
@RequestMapping("/mmm")
public class MMMController {
    @Value("${server.port}")
    private String port;
    @GetMapping("/get")
    public String get(){
        return port;
    }
}

但是测试始终无效:

分析原因

springcloud项目基本上都聚合到一个父项目中,里面各种子模块如provider、consumer、sentinel、gateway…,其他模块都没问题,但是springcloud gateway有点特殊,因为它依赖了web webflux ,就会有冲突,所以基本上在pom中就要排除web,这样就不会应该父项目依赖了web导致冲突了

springcloud gateway 的pom排除web


    org.springframework.cloud
    spring-cloud-starter-gateway
    
        
			org.springframework.boot
        	spring-boot-starter-web
        
    

启动会成功,但是项目会有报错提示:

**********************************************************

Spring MVC found on classpath, which is incompatible with Spring Cloud Gateway at this time. Please remove spring-boot-starter-web dependency.

**********************************************************

最后路由不到指定url。

Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.

Fri Mar 17 16:34:53 CST 2023
There was an unexpected error (type=Not Found, status=404).
No message available

解决思路

如何解决呢?我的意见是把springcloud gateway项目独立出来,不要聚合到父项目中,这样就不会有web以来冲突了

独立的springcloud gateway

pom文件如下:



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.2.13.RELEASE
         
    
    com.mmm.springcloud.study
    spring-cloud-gateway-demo
    1.0-SNAPSHOT
    
        8
        8
        UTF-8
    
    
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
            2.2.5.RELEASE
        
        
            org.springframework.cloud
            spring-cloud-starter-gateway
            2.2.3.RELEASE
        
    

因为没有聚合到父项目中,所以不需要额外提出web,启动后直接访问,成功!

总结

到此这篇关于springcloudgateway无法路由问题解决的文章就介绍到这了,更多相关springcloudgateway无法路由内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

关键词:

热图推荐

Copyright @ 2008-2017 news.baoshe.net All Rights Reserved 报社网 版权所有 京ICP备12018864号-10

联系我们:291 32 36@qq.com

营业执照公示信息