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

分布式定时器

作者头像
小梁编程汇
发布2021-12-08 11:56:30
4470
发布2021-12-08 11:56:30
举报
文章被收录于专栏: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 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 CMQ 版
消息队列 CMQ 版(TDMQ for CMQ,简称 TDMQ CMQ 版)是一款分布式高可用的消息队列服务,它能够提供可靠的,基于消息的异步通信机制,能够将分布式部署的不同应用(或同一应用的不同组件)中的信息传递,存储在可靠有效的 CMQ 队列中,防止消息丢失。TDMQ CMQ 版支持多进程同时读写,收发互不干扰,无需各应用或组件始终处于运行状态。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档