开发者社区 > 云原生 > Serverless > 正文

我的偶尔请求是404,以下日志能看到原因么 2023-02-06 07:54:47.009 WAR

我的偶尔请求是404,以下日志能看到原因么

2023-02-06 07:54:47.009 WARN 1 --- [l-1 housekeeper] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=34m45s798ms541µs328ns).

展开
收起
码字王 2023-02-06 17:08:39 485 0
4 条回答
写回答
取消 提交回答
  • 根据所提供的日志信息,com.zaxxer.hikari.pool.HikariPool 警告表示检测到线程饥饿或时钟跳跃(housekeeper delta=34m45s798ms541µs328ns),这意味着 HikariCP 数据库连接池的维护线程(housekeeper)在预期的唤醒时间点未能按时执行。

    原因可能是:

    线程饥饿:如果你的应用服务器上 CPU 资源受限,其他线程的活动可能会导致池中的 housekeeper 线程无法获得足够的 CPU 时间来执行其定期的维护任务。

    时钟跳跃:涉及系统时间调整,如服务器自动或手动修正时间,或者虚拟化环境中的时钟同步问题。如果 housekeeper 线程计划在某个时间点醒来,但实际上因为时间调整而错过唤醒时间,就可能出现这个警告。

    系统挂起或休眠:在某些环境下,服务器可能由于资源节约策略进入休眠或挂起状态,导致所有线程的执行被暂停。

    对于 404 错误,它通常表示客户端请求的资源无法在服务器上找到。HikariCP 的这个警告和 404 错误之间不一定有直接的联系。除非连接池的问题导致了数据库查询失败,该查询是服务器对特定请求提供资源的一部分。如果这种情况发生,那么服务端的逻辑可能因为数据库连接问题而抛出了错误,从而最终导致了 404 错误响应。

    要进一步排查 404 错误的原因,可以:

    查看更详细的应用日志:查明是哪个请求导致了 404,然后检查与该请求相关的服务和控制器逻辑是否有问题。

    检查网络和路由配置:确保所有的请求都被正确路由到了其预期的目的地。

    审核数据库连接和查询代码:如果连接池问题影响了数据库查询,检查相关代码是否正确处理了数据库连接和查询异常。

    监视和调整数据库连接池:如果系统经常检测到线程饥饿,可能需要调优 HikariCP 的配置或增加服务器资源。

    如果无法自行定位问题原因,建议共享更多相关信息(例如完整的堆栈跟踪、404 请求的细节、相关服务代码片段)来寻求具体的帮助。同时,也可以根据业务逻辑和服务架构进行端到端的问题追踪分析。

    2024-02-27 16:36:11
    赞同 展开评论 打赏
  • 从上面的日志中,可以看到线程饥饿或时钟跳变被检测到,但是不能看出404错误的原因。

    2023-02-06 22:44:50
    赞同 展开评论 打赏
  • 权限不足, 1. 查看是不是主账号 2. 如果是子账号,查看账号是否具备 create vpc 的权限

    此答案来自钉钉群“Serverless 开发者技术学习群”

    2023-02-06 20:25:01
    赞同 展开评论 打赏
  • 从事java行业9年至今,热爱技术,热爱以博文记录日常工作,csdn博主,座右铭是:让技术不再枯燥,让每一位技术人爱上技术

    这种情况一般是定时任务调试的时候,断点停留时间过长导致的,如果你没有调试而是直接运行定时任务也会偶尔出现这个问题的话,那一般就是网络波动影响的了,如果只是偶尔的话,定时任务做好重试机制,应该就没什么问题了。

    2023-02-06 17:37:25
    赞同 展开评论 打赏
问答分类:
问答地址:

快速交付实现商业价值。

热门讨论

热门文章

相关电子书

更多
PostgresChina2018_赖思超_PostgreSQL10_hash索引的WAL日志修改版final 立即下载
Kubernetes下日志实时采集、存储与计算实践 立即下载
日志数据采集与分析对接 立即下载