得得滴 2022-03-10 22:28 采纳率: 0%
浏览 190

nacos+gateway实现动态路由,只有第一个路由生效,其他的都会转发到第一个路由上

nacos+gateway实现动态路由,只有第一个路由生效,其他的都会转发到第一个路由上

这是nacos上的动态路由配置

img

这是nacos上注册的服务

img

这是zipkin上监测到的转发错误地址

img

为什么会出现这种情况,只有第一个配置的路由生效,我将这个报错的移到第一位,这个就可以使用,但是其他的就会报错。
所有的路由都会被转发到第一个的ip加端口上,所以会报404错误。

HTTP/1.1 404 Not Found
Content-Type: text/html;charset=utf-8
Content-Language: en
Content-Length: 431
Date: Thu, 10 Mar 2022 13:54:50 GMT

gateway的日志上又能看到所有的路由配置信息

2022-03-10 21:41:06.179  INFO [e-commerce-gateway,,,] 14268 --- [           main] c.t.e.c.DynamicRouteServiceImplByNacos   : get current gateway config: [[
    {
        "id": "e-commerce-nacos-client",
        "predicayes": [
            {
                "args": {
                    "pattern": "/shuai/ecommerce-nacos-client/**"
                },
                "name": "Path"
            }
        ],
        "uri": "lb://e-commerce-nacos-client",
        "filters": [
            {
                "name": "StripPrefix",
                "args": {
                    "parts": "1"
                }
            }
        ]
    },
    {
        "id": "e-commerce-goods-service",
        "predicayes": [
            {
                "args": {
                    "pattern": "/shuai/ecommerce-goods-service/**"
                },
                "name": "Path"
            }
        ],
        "uri": "lb://e-commerce-goods-service",
        "filters": [
            {
                "name": "StripPrefix",
                "args": {
                    "parts": "1"
                }
            }
        ]
    },
    {
        "id": "e-commerce-account-service",
        "predicayes": [
            {
                "args": {
                    "pattern": "/shuai/ecommerce-account-service/**"
                },
                "name": "Path"
            }
        ],
        "uri": "lb://e-commerce-account-service",
        "filters": [
            {
                "name": "StripPrefix",
                "args": {
                    "parts": "1"
                }
            }
        ]
    }
]]
2022-03-10 21:41:06.244  INFO [e-commerce-gateway,,,] 14268 --- [           main] c.t.e.c.DynamicRouteServiceImplByNacos   : init gateway config: [RouteDefinition{id='e-commerce-nacos-client', predicates=[], filters=[FilterDefinition{name='StripPrefix', args={parts=1}}], uri=lb://e-commerce-nacos-client, order=0, metadata={}}]
2022-03-10 21:41:06.244  INFO [e-commerce-gateway,,,] 14268 --- [           main] c.t.e.config.DynamicRouteServiceImpl     : gateway add route: [RouteDefinition{id='e-commerce-nacos-client', predicates=[], filters=[FilterDefinition{name='StripPrefix', args={parts=1}}], uri=lb://e-commerce-nacos-client, order=0, metadata={}}]
2022-03-10 21:41:06.535  INFO [e-commerce-gateway,,,] 14268 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [After]
2022-03-10 21:41:06.535  INFO [e-commerce-gateway,,,] 14268 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Before]
2022-03-10 21:41:06.535  INFO [e-commerce-gateway,,,] 14268 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Between]
2022-03-10 21:41:06.535  INFO [e-commerce-gateway,,,] 14268 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Cookie]
2022-03-10 21:41:06.535  INFO [e-commerce-gateway,,,] 14268 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Header]
2022-03-10 21:41:06.535  INFO [e-commerce-gateway,,,] 14268 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Host]
2022-03-10 21:41:06.535  INFO [e-commerce-gateway,,,] 14268 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Method]
2022-03-10 21:41:06.535  INFO [e-commerce-gateway,,,] 14268 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Path]
2022-03-10 21:41:06.535  INFO [e-commerce-gateway,,,] 14268 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Query]
2022-03-10 21:41:06.535  INFO [e-commerce-gateway,,,] 14268 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [ReadBodyPredicateFactory]
2022-03-10 21:41:06.535  INFO [e-commerce-gateway,,,] 14268 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [RemoteAddr]
2022-03-10 21:41:06.535  INFO [e-commerce-gateway,,,] 14268 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [Weight]
2022-03-10 21:41:06.535  INFO [e-commerce-gateway,,,] 14268 --- [           main] o.s.c.g.r.RouteDefinitionRouteLocator    : Loaded RoutePredicateFactory [CloudFoundryRouteService]
2022-03-10 21:41:06.600  INFO [e-commerce-gateway,,,] 14268 --- [           main] c.t.e.c.DynamicRouteServiceImplByNacos   : init gateway config: [RouteDefinition{id='e-commerce-goods-service', predicates=[], filters=[FilterDefinition{name='StripPrefix', args={parts=1}}], uri=lb://e-commerce-goods-service, order=0, metadata={}}]
2022-03-10 21:41:06.601  INFO [e-commerce-gateway,,,] 14268 --- [           main] c.t.e.config.DynamicRouteServiceImpl     : gateway add route: [RouteDefinition{id='e-commerce-goods-service', predicates=[], filters=[FilterDefinition{name='StripPrefix', args={parts=1}}], uri=lb://e-commerce-goods-service, order=0, metadata={}}]
2022-03-10 21:41:06.605  INFO [e-commerce-gateway,,,] 14268 --- [           main] c.t.e.c.DynamicRouteServiceImplByNacos   : init gateway config: [RouteDefinition{id='e-commerce-account-service', predicates=[], filters=[FilterDefinition{name='StripPrefix', args={parts=1}}], uri=lb://e-commerce-account-service, order=0, metadata={}}]
2022-03-10 21:41:06.605  INFO [e-commerce-gateway,,,] 14268 --- [           main] c.t.e.config.DynamicRouteServiceImpl     : gateway add route: [RouteDefinition{id='e-commerce-account-service', predicates=[], filters=[FilterDefinition{name='StripPrefix', args={parts=1}}], uri=lb://e-commerce-account-service, order=0, metadata={}}]
2022-03-10 21:41:06.653  INFO [e-commerce-gateway,,,] 14268 --- [           main] c.n.c.sources.URLConfigurationSource     : URLs to be used as dynamic configuration source: [file:/C:/Users/duzin/IdeaProjects/e-commerce-springcloud/e-commerce-gateway/target/classes/config.properties]
2022-03-10 21:41:06.660  INFO [e-commerce-gateway,,,] 14268 --- [           main] c.n.c.sources.URLConfigurationSource     : URLs to be used as dynamic configuration source: [file:/C:/Users/duzin/IdeaProjects/e-commerce-springcloud/e-commerce-gateway/target/classes/config.properties]
2022-03-10 21:41:07.809  INFO [e-commerce-gateway,,,] 14268 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 19 endpoint(s) beneath base path '/actuator'
2022-03-10 21:41:07.911  INFO [e-commerce-gateway,,,] 14268 --- [           main] o.s.s.c.ThreadPoolTaskScheduler          : Initializing ExecutorService 'Nacos-Watch-Task-Scheduler'
2022-03-10 21:41:08.643  INFO [e-commerce-gateway,,,] 14268 --- [zipkin} check()] o.a.k.clients.admin.AdminClientConfig    : AdminClientConfig values: 
    bootstrap

请问有遇到过同样问题的吗?我都快feng了。
spring对应的版本

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.2.RELEASE</version>
    </parent>

    <properties>
        <!-- Spring Cloud Hoxton.SR8 依赖 -->
        <spring-cloud.version>Hoxton.SR8</spring-cloud.version>
        <!-- spring cloud alibaba 依赖 -->
        <spring-cloud-alibaba.version>2.2.5.RELEASE</spring-cloud-alibaba.version>
    </properties>

  • 写回答

1条回答 默认 最新

  • 在自我救赎中成长 2022-03-11 09:38
    关注

    到这个类 RoutePredicateHandlerMapping.getHandlerInternal 看下,里面有一个this.lookupRoute方法进行route查找。this.routeLocator.getRoutes()这个会去获取你所有配置的route你看下有没有

    评论

报告相同问题?

问题事件

  • 创建了问题 3月10日

悬赏问题

  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思