HikariPool-1 – Thread starvation or clock leap detected与Hikari数据源配置

HikariPool-1 – Thread starvation or clock leap detected与Hikari数据源配置2019-12-0412:10:51.494WARN14480—[l-1housekeeper]com.zaxxer.hikari.pool.HikariPool:HikariPool-1-Threadstarvationorclockleapdetected(housekeeperdelta=7m48s317ms362µs591ns)….

大家好,又见面了,我是你们的朋友全栈君。

目录

一、日志信息

二、Hikari

1)概述

​2)数据源修改

3)pom.xml引用

4)yml数据源配置

5)运行正常

三、其他


一、日志信息

2019-02-04 12:10:51.494  WARN 14480 --- [l-1 housekeeper] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 
- Thread starvation or clock leap detected (housekeeper delta=7m48s317ms362µs591ns).
2019-02-04 12:48:17.254  WARN 14480 --- [l-1 housekeeper] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 
- Thread starvation or clock leap detected (housekeeper delta=7m25s798ms90µs273ns).
2019-02-04 13:19:38.276  WARN 14480 --- [l-1 housekeeper] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 
- Thread starvation or clock leap detected (housekeeper delta=1m21s77ms385µs775ns).
2019-02-04 14:05:35.244  WARN 14480 --- [l-1 housekeeper] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 
- Thread starvation or clock leap detected (housekeeper delta=4m27s7ms106µs449ns).

直译:HikariPool-1-检测到线程不足或时钟跳跃。

人话:检测到等待连接的时间过长,造成线程不足;或者检查测时钟跳跃

情况:

调试的时候,在定时任务中设了断点,停留时间较长,所以出现Thread starvation or clock leap detected,

直接搜索关键字Hikari、HikariPool

二、Hikari

1)概述

SpringBoot2中默认的数据已经更改为hikari,据说性能很高,有兴趣的可以进行测试。
目前使用最广泛的druid基础数组实现,而hikari则是基于threadlocal +CopyOnWriteArrayList实现。

​2)数据源修改

查看官方文档,发现默认数据源修改了

HikariPool-1 - Thread starvation or clock leap detected与Hikari数据源配置

3)pom.xml引用

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>

4)yml数据源配置

添加:

type: com.zaxxer.hikari.HikariDataSource
spring:
  #数据源配置
  datasource:
    type: com.zaxxer.hikari.HikariDataSource
    url: jdbc:mysql://127.0.0.1:3306/dmw?createDatabaseIfNotExist=true&autoReconnect=true&default-character-set=utf8&&useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver
  servlet:
    multipart:
      max-file-size: 50MB
      max-request-size: 100MB
  redis:
    # Redis数据库索引(默认为0)
    database: 6
    # Redis服务器地址

HikariPool-1 - Thread starvation or clock leap detected与Hikari数据源配置

5)运行正常

HikariPool-1 - Thread starvation or clock leap detected与Hikari数据源配置

三、其他

它在管家线程上运行,该线程每30秒执行一次。如果在Mac OS X上,clockSource是System.currentTimeMillis(),则任何其他平台上的clockSource是System.nanoTime()。从理论上讲,两者都在单调增加,但是诸如NTP服务器之类的各种因素都可能影响到这一点。大多数操作系统旨在处理向后NTP时间调整,以保留对时间的前向错觉的幻想。

这段代码说的是,如果时间倒退(现在<以前),或者如果时间“跳跃”了两个以上的内务处理周期(超过60秒),那么可能会发生一些奇怪的事情。

可能正在发生一些事情:

  • 您可能正在某个虚拟容器(VMWare,AWS等)中运行,由于某种原因,该容器在维持时间上的错觉方面做得特别差。
  • 由于管家线程中发生了其他事情-特别是关闭空闲连接-出于某种原因,关闭连接可能会阻塞管家线程两个以上的维护周期(60秒)。
  • 服务器太忙了,所有CPU都挂在了一起,以致发生线程不足,这导致管家线程无法运行两个以上的管家周期。

有用请点赞,养成良好习惯!

疑问、交流、鼓励请留言!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152348.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月23日 下午1:36
下一篇 2022年6月23日 下午1:36


相关推荐

  • 使用nginx解决跨域问题

    使用nginx解决跨域问题1 跨域解释 1 1 怎么知道我遇到了跨域问题如果项目没做前后端分离 是不会有跨域问题的 前后端分离的项目中 前端调用后台服务时 报错 No Access Control Allow Origin headerispres 你就是遇到了跨域问题 另外 前端调试墙裂推荐使用 chrome 使用浏览器遇到过跨域访问不了但是不报错

    2026年3月26日
    3
  • 运维思索:运维管理与运维自动化

    运维思索:运维管理与运维自动化简述各位小伙伴 近期技术文感觉发的有点多 不知是否给大家在工作中解决实际问题带来了一些灵感 为什么这么说呢 因为正是文章中涉及的细小知识点积少成多 让我从零碎繁忙的运维工作中得到了一定程度的解放 相信认真读过的小伙伴 一定会觉得工作中并非只有什么高大上的技术才能解决痛点 恰恰相反 正是那些我们平时忽视的细节才是问题的要害 那么只有切中要害 我们才能对症下药 因此接下来一段时间 我可能会陆续分享运维过程中对一些问题的思考 希望给大家带来一定的启发 本次分享的是运维管理与运维自动化的思考 一 运维的工作

    2026年3月19日
    2
  • 深入浅出MFC-读书笔记

    深入浅出MFC-读书笔记不想去成为一个伟大的程序员,只想成为一个具有良好习惯的优秀程序员。第一章:Win32基本程序观念我也赞同书中所讲,应用MFC框架开发Windows程序需要深入到底层,如果只停留在表面应用知其然而不知其所以然,这样会限制你更好的应用MFC框架。Win32程序开发流程下图说明一个32位WindowsSDK程序的开发流程:Windows程序分为…

    2022年6月16日
    35
  • 【愚公系列】《扣子开发 AI Agent 智能体应用》005-扣子 AI 应用开发平台介绍(扣子的目标群体和架构)

    【愚公系列】《扣子开发 AI Agent 智能体应用》005-扣子 AI 应用开发平台介绍(扣子的目标群体和架构)

    2026年3月16日
    2
  • springboot全局字符编码设置(解决乱码问题)

    springboot全局字符编码设置(解决乱码问题)有时候我们会发现这种问题,明明已经设置了字符编码过滤器但是还会有乱码的情况出现,这个问题令我们很是头疼,我之前也遇到过这种情况。那怎么解决呢?springboot编码格式设置有三种方式,不管使用哪种方式,总有一款适合你。1、在application.properties中设置#编码格式spring.http.encoding.force=truespring.http.encod…

    2022年4月27日
    351
  • macos dock栏_苹果mac使用技巧

    macos dock栏_苹果mac使用技巧Dock栏就是Mac电脑屏幕下方的那一排快捷键,我们可以把自己常用的程序放到Dock上面,这样可以帮助我们快速的打开自己想要打开的文件和程序,默认情况下,OSX的Dock置于屏幕的底部。当你第一次进入MacOSX的桌面,Dock中内置了许多应用程序,怎么用好它?其实,我们不仅可以自定义Dock中显示的内容,而且你还可以调整Dock的大小、位置等等,下面给大家介绍几个关于Dock栏使用技巧,让大家使用Mac电脑更加得心应手。一、添加应用程序,文件夹和文件到Dock1.打开你的

    2025年8月27日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号