spring boot 请求接口,时不时报 404,如何定位问题?

2021-06-30 09:48:44 +08:00
 tuine

有没有 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
3812 次点击
所在节点    Java
15 条回复
liian2019
2021-06-30 09:54:18 +08:00
是不是负载均衡的原因
shanghai1943
2021-06-30 09:58:45 +08:00
最好提供一下架构信息以及相应的日志信息来排查分析,目前没有更多信息的话也看不出所在
statement
2021-06-30 10:16:06 +08:00
是不是用了网关。 然后用服务名调用?
tuine
2021-06-30 10:17:44 +08:00
补充:
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);
}
}
```
tuine
2021-06-30 10:19:44 +08:00
@statement #3 对,走的 lb://auth-service
tuine
2021-06-30 10:20:36 +08:00
@liian2019 #1 有可能,但是我只启动了一个服务,偶尔出现很难测~
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
demobin
2021-06-30 10:59:24 +08:00
估计是有谁开发注册上 nacos 去了,然后负载到他那内网可能不通之类的。
tuine
2021-06-30 11:04:07 +08:00
@demobin #8 没,我进 nacos 看了,只有一个实例
tuine
2021-06-30 11:04:19 +08:00
@statement #7 我试试
tuine
2021-06-30 11:12:43 +08:00
@shanghai1943 #2 404 没有太详细的日志 😂
leafre
2021-06-30 11:15:20 +08:00
尝试调节 ribbon 参数
wqhui
2021-06-30 11:34:40 +08:00
@demobin 这种不是 404,是接口超时
tyit
2021-06-30 13:23:18 +08:00
断点 Debug 一下
tuine
2021-06-30 14:39:23 +08:00
@tyit #14 不太频繁,几百次请求后能有连续的四五次,而且是测试环境

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/786599

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX