kafka中的时间轮实现

Kafka中的时间轮是一种用于实现定时清理消息过期心跳超时等功能的定时任务调度机制。

通过时间轮可以避免在大量的定时任务中进行逐个扫描,可以实现接近O(1)的延迟任务管理,降低了内存和CPU的消耗,比较适合管理大量短时和中长期的定时任务

时间轮,它可以看成是一个环形数组,其中,每个槽表示一个时间间隔。

Kafka会在时间轮的每个槽中根据任务的到期时间放置延迟任务,当时间轮转到任务所在的槽时,就执行该槽内的任务。

如果存在到期未完成的任务,则会被重新分配到下一轮

相关推荐
程序员阿鹏2 小时前
如何保证写入Redis的数据不重复
java·开发语言·数据结构·数据库·redis·缓存
uup2 小时前
Future.get () 的潜在陷阱
java
JAY_LIN——82 小时前
字符串函数(strncpy/cat/cmp、strstr、strtok、strerror)
c语言·开发语言
狂奔小菜鸡2 小时前
Day36 | Java中的线程池技术
java·后端·java ee
sheji34162 小时前
【开题答辩全过程】以大学校园点餐系统为例,包含答辩的问题和答案
java
lly2024062 小时前
C# 数据类型
开发语言
苏婳6662 小时前
Java---SSH(MVC)面试题
java·ssh·mvc
树欲静而风不止慢一点吧2 小时前
Qt5/6版本对应的Emscripten版本
开发语言·qt
微爱帮监所写信寄信3 小时前
微爱帮监狱寄信写信系统后台PHP框架优化实战手册
android·开发语言·人工智能·网络协议·微信·https·php