nacos+gateway实现动态路由,只有第一个路由生效,其他的都会转发到第一个路由上
这是nacos上的动态路由配置
这是nacos上注册的服务
这是zipkin上监测到的转发错误地址
为什么会出现这种情况,只有第一个配置的路由生效,我将这个报错的移到第一位,这个就可以使用,但是其他的就会报错。
所有的路由都会被转发到第一个的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>