有没有 V 友碰到过的,偶尔会出现 404
{ "timestamp": "2021-06-29T06:46:35.477+0000", "status": 404, "error": "Not Found", "message": "No message available", "path": "/auth/info }
使用的nacos
,但是此服务只启动了一个,yml 配置:
routes: - id: auth-service uri: lb://auth-service predicates: - Path=/v1/auth/** filters: - StripPrefix=1 - id: bus-service uri: lb://bus-service predicates: - Path=/v1/** filters: - StripPrefix=1
增加了个链路追踪,发现路由应该是走了id: bus-service,/v1/**的规则,所以结论应该是:route的书写顺序并不能保证路由的匹配优先级。然后查询有order配置,增加上了,跑一段时间看看。
1 liian2019 2021-06-30 09:54:18 +08:00 是不是负载均衡的原因 |
![]() | 2 shanghai1943 2021-06-30 09:58:45 +08:00 最好提供一下架构信息以及相应的日志信息来排查分析,目前没有更多信息的话也看不出所在 |
![]() | 3 statement 2021-06-30 10:16:06 +08:00 是不是用了网关。 然后用服务名调用? |
4 tuine OP 补充: spring boot: 2.2.6.RELEASE spring cloud: Hoxton.SR1 网关使用 spring cloud gateway 404NOT FOUND,暂时没有额外日志。 GET: localhost:9000/auth/info?token=gNGLJLLZsluDsIQw 访问后偶然出现。 auth-service,controller: ```java @RestController @RequestMapping("/auth") @RequiredArgsConstructor public class AuthController { private final AuthService authService; @GetMapping("info") public Result info(@RequestParam("token") String token) { Map<String, Object> stringObjectMap = authService.getInfo(token); return ResultGenerator.success(stringObjectMap); } } ``` |
![]() | 7 statement 2021-06-30 10:36:57 +08:00 nacos 不知道 应该是类似的问题 建议试试 直接用 ip 调用。是不是就不会出现这个问题 之前用 zuul 也遇到过同样问题 用地址访问没问题 用服务名会间歇性 404 。频率还很高 刷快一点 10 次里有 5 次 404 解决办法: 方式 1.用地址访问不用服务名访问 zuul.routes.api-url.path=/api/** zuul.routes.api-url.url=http://127.0.0.1:9011/ 方式 2.在被调用的服务里开启 prefer-ip-address eureka.instance.prefer-ip-address=true eureka.instance.ipAddress=127.0.0.1 |
8 demobin 2021-06-30 10:59:24 +08:00 估计是有谁开发注册上 nacos 去了,然后负载到他那内网可能不通之类的。 |
11 tuine OP @shanghai1943 #2 404 没有太详细的日志 |
12 leafre 2021-06-30 11:15:20 +08:00 尝试调节 ribbon 参数 |
![]() | 14 tyit 2021-06-30 13:23:18 +08:00 via iPhone 断点 Debug 一下 |