SpringBoot第47讲:SpringBoot定时任务 - Netty HashedWheelTimer方式
timer 和 ScheduledExecutorService 是JDK内置的定时任务方案,而业内还有一个经典的定时任务的设计叫时间轮(Timing Wheel), Netty 内部基于时间轮实现了一个 HashedWheelTimer 来优化百万量级I/O超时的检测,它是一个高性能,低消耗的数据结构,它适用于非准实时,延迟的短平快任务,例如心跳检测。本文是SpringBoot第47讲,主要介绍时间轮(Timing Wheel)及其使用。
文章目录
1、知识准备
需要对时间轮(Timing Wheel),以及Netty的 HashedWheelTimer 要解决什么问题有初步的认识。
1.1、什么是时间轮(Timing Wheel)
时间轮(Timing Wheel)是George Varghese和Tony Lauck在1996年的论文’Hashed and Hierarchical Timing Wheels: data structures to efficiently implement a timer facility’实现的,它在Linux内核中使用广泛,是Linux内核定时器的实现方法