前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >分布式定时器

分布式定时器

作者头像
小梁编程汇
发布2021-12-08 11:56:30
发布2021-12-08 11:56:30
4940
举报
文章被收录于专栏:wallbigwallbig

1、分布式定时器介绍

定时器数据结构比较:http://novoland.github.io/%E5%B9%B6%E5%8F%91/2014/07/26/%E5%AE%9A%E6%97%B6%E5%99%A8%EF%BC%88Timer%EF%BC%89%E7%9A%84%E5%AE%9E%E7%8E%B0.html 时间轮算法论文:http://www.cs.columbia.edu/~nahum/w6998/papers/sosp87-timing-wheels.pdf

2、采用redis集群实现的分布式分级时间轮定时器架构图:

每个task是一个不断运行的进程

2.1、如何保证每个sortedset仅被消费task一次

一个sortedSet对应一个令牌,取得令牌的task才能去通过触发器去redis中查询sortedSet包含的定时器中是否有某些已经过期了,这里的令牌由调度器中专门的task产生,并且放在消息队列task queue中,消费且仅消费一次由消息队列提供保证。并保证task的数量总是多于当前需要处理的sortedset

2.2、当task受到单机故障影响的时候,如何保证这个进程sortSet可以被其他的task接手

追溯上个一个时间间隔的sortedSet中的定时器是否被处理完成

引用:http://novoland.github.io/%E5%B9%B6%E5%8F%91/2014/07/26/%E5%AE%9A%E6%97%B6%E5%99%A8%EF%BC%88Timer%EF%BC%89%E7%9A%84%E5%AE%9E%E7%8E%B0.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档