有没有 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 一下
|