分布式定时任务那些事儿|青训营笔记

一、前言分布式定时任务那些事儿|青训营笔记

以集福开奖为例,后端如何设计最终开奖环节的技术方案?

自动化 + 定时执行 + 大规模数据处理 + 高效稳定性 == 分布式定时任务

二、概述2.1 发展历程• Windows运行批处理文件• Windows任务计划程序• Linux命令—CronJob• 应用程序编码层—单机定时任务(Timer—JavaTicker—GoScheduledExecutorService—线程池技术)• 任务调度—Quartz(单任务极致控制、没有负载均衡机制)• 分布式定时任务(平台化管理、分布式部署、支持海量数据)2.2 分布式定时任务概述定时任务是指系统自动完成特定任务,实时、延时、周期性完成任务调度的过程。

分布式定时任务是一种将分散的、可靠性低的定时任务整合到统一平台,并实现集群管理调度和分布式部署的管理方式。

2.3 分布式定时任务特点• 自动化:自动完成定时任务的调度和执行• 平台化:基于平台化的思维管理一系列的分布式定时任务• 分布式:在分布式系统环境下运行任务调度,突破单机定时任务的性能限制• 伸缩性:采用集群部署,可以按需进行扩缩容• 高可用:单点故障不影响最终任务结果,可以实现故障转移2.4 分布式定时任务执行方式• 单机任务:随机触发一台机器执行任务,适用于计算量小、并发低的任务• 广播任务:广播到所有机器上执行同一个任务,例如所有机器同时清理日志• Map任务:一个任务可以分出多个子任务,每个子任务负责部分计算。适用于计算量大,单机无法满足要求的任务• MapReduce任务:在Map的基础上,还可以对所有子任务的结果进行汇总计算,适用于计算量大且需要对子任务结果进行汇总的任务分布式定时任务那些事儿|青训营笔记2.5 业内定时任务框架分布式定时任务那些事儿|青训营笔记三、实现原理3.1 核心架构分布式定时任务那些事儿|青训营笔记分布式定时任务核心要解决触发、调度、执行三个关键问题。

• 触发器:Trigger,解析任务,生成触发事件• 调度器:Scheduler,分配任务,管理任务生命周期• 执行器:Executor,获取执行任务单元,执行任务逻辑3.2 控制台分布式定时任务那些事儿|青训营笔记• 任务:Job,任务元数据• 任务实例:JobInstance,周期任务会生成多个任务实例• 任务结果:JobResult,任务实例运行的结果• 任务历史:JobHistory,用户可以修改任务信息,任务实例对应的任务元数据可以不同,因此使用任务历史存储3.3 触发器给定一系列任务,解析它们的触发规则,在规定的时间点触发任务的调度,以下是一些触发器设计方案:

分布式定时任务那些事儿|青训营笔记不同业务之间的任务调度相互影响怎么办?负责扫描和触发的机器挂了怎么办?

• 存储上:不同国家、业务进行资源隔离• 运行上:不同国家、业务分开执行• 部署时:采用多机房集群化部署,避免单点故障,通过数据库锁或分布式锁保证任务只被触发一次3.4 调度器根据调度的资源来源可以分为两种方案:

• 业务系统提供资源(阿里、美团、字节)• 优点:任务执行逻辑与业务系统共用一份资源,利用率高• 缺点:更容易发生定时任务脚本影响在线业务的事故;不能由定时任务平台控制扩缩容• 定时任务平台提供机器资源(字节)• 优点:任务执行逻辑与业务系统提供的在线服务隔离,避免相互影响,可以优化扩缩容• 缺点:消耗更多机器资源;需要额外为定时任务平台申请接口调用权限,而不能直接继承业务系统的权限资源调度—节点选择:

• 随机节点执行:选择集群中的一个可用的执行节点执行调度任务。适用场景:定时对账• 广播执行:在集群中所有的执行节点分发调度任务并执行。适用场景:批量运维• 分片执行:按照用户自定义的分片逻辑进行拆分,分发到集群中不同节点并执行,提升资源利用效率。适用场景:海量日志统计分布式定时任务那些事儿|青训营笔记• 故障转移:分片任务基于一致性Hash策略分发任务,当某个执行器异常时,调度器会将任务分发到其他执行器。• 高可用:调度器可以集群部署,做到完全无状态,靠消息队列的重试机制保障任务一定会被调度。分布式定时任务那些事儿|青训营笔记3.5 执行器分布式定时任务那些事儿|青训营笔记基于注册中心,可以实现执行器的弹性扩缩容。

四、业务应用所有需要定时、延时、周期性执行任务的业务场景,都可以考虑使用分布式定时任务

• 电商:订单30分钟未支付自动关闭、定时给商家、达人发送消息、优惠券• 互动:支付宝集五福、字节春节集卡分红包• 游戏:活动结束后批量补发用户未领取的奖励、定期更新游戏内的榜单分布式定时任务那些事儿|青训营笔记五、总结分布式定时任务那些事儿|青训营笔记

以上就是分布式定时任务那些事儿|青训营笔记的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/14209.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
被骂惨了 万志强回应魅族22为什么这么晚:开发比想象中更艰难
上一篇 2025年11月24日 09:50:12
Windows10高性能电源计划选项消失了怎么办_Windows10高性能电源计划消失修复方法
下一篇 2025年11月24日 09:52:15

相关推荐

  • 关于Linux 自动唤醒和关闭的实现方法

    不知道大家对linux 自动唤醒和关闭有多少理解,本文主要介绍了linux 自动唤醒和关闭的实现方法,需要的朋友可以参考下,希望能帮助到大家。 一. 系统休眠(crontab)  示例说明(创建一个 root 定时任务实现每天晚上 11 点 15 分定时关机): # crontab -e -u ro…

    用户投稿 2026年9月4日
    000
  • 如何让Windows文件管理器滚动如macOS奶油般顺滑?

    如何让windows文件管理器滚动如macos奶油般顺滑? 想要让Windows文件管理器的滚动体验如同macOS般流畅,首先需要了解传统Windows管理器explorer.exe的局限性。传统的Windows文件管理器位于: C:Windowsexplorer.exe 使用鼠标滚轮时,滚动并不顺…

    2026年9月3日
    000
  • linux下vsftpd的安装及配置介绍

    本文主要介绍了linux下vsftpd的安装及配置使用详细步骤 ,需要的朋友可以参考下,希望能帮助到大家。 vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。 vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linu…

    用户投稿 2026年9月3日
    000
  • [python]windows上安装pyaudio最简单方法

    pyaudio是一个用于处理音频流的python库,它依赖于portaudio库。如果直接使用pip命令无法安装pyaudio,可以尝试通过whl文件进行安装。以下是pyaudio通过whl文件安装的详细方法: 一、准备阶段 下载PyAudio的whl文件 访问可靠的Python包分发网站,如镜像站…

    2026年9月3日
    100
  • linux操作系统原理基础

    linux操作系统原理基础linux操作系统原理基础linux操作系统原理基础linux操作系统原理基础

    本文主要和大家讲述linux操作系统原理,这是一篇非常好的linux系统基础教程,我们总结了相关的全部精选内容,一起来学习下。希望能帮助到大家。 linux操作系统原理文字版 一.计算机经历的四个时代 1.第一代: 真空管计算机,输入和输出:穿孔卡片,对计算机操作起来非常不便,做一件事可能需要十几个…

    2026年9月3日 用户投稿
    100
  • linux中sed命令和awk命令的使用方法

    本文主要介绍了浅谈linux中sed命令和awk命令的使用,具有一定借鉴价值,需要的朋友可以参考,希望能帮助到大家。 1、sed命令:没有重定向不会真正修改源文件中的内容 查询语句 ①sed -n ‘/sbin/p’ passwd 表示查询出passwd文件中存在sbin字符的所有行并打…

    用户投稿 2026年9月3日
    100
  • 微软解释Windows 10 v1809文件覆盖Bug:下月发补丁

    windows 10 版本 1809(2018 年 10 月更新)尽管已被撤回,但依然有部分用户已安装该版本,尤其是在 insiders 内测通道中,因此成为了发现 bug 的测试平台。其中一些 bug 还显得比较基础,例如从 zip 压缩包解压文件时,遇到同名文件不会弹出提示,而是直接覆盖。 微软…

    2026年9月3日
    100
  • linux之让history命令显示日期和时间方法

    history 命令将终端上 bash 执行过的所有命令存储到 .bash_history 文件中,来帮助我们复查用户之前执行过的命令。本文主要介绍了让history命令显示日期和时间的方法,需要的朋友可以参考下,希望能帮助到大家。 默认情况下 history 命令直接显示用户执行的命令而不会输出运…

    用户投稿 2026年9月3日
    200
  • win10下载东西被阻止怎么处理

    当您在使用windows 10系统时,有时会遇到下载文件被意外拦截的情况。win10下载文件被拦截怎么办?通常这是由于系统自带的防火墙或安全软件引起的。您可以尝试通过调整注册表设置、切换兼容模式或调整安全选项等方法来解决这个问题。 Win10下载文件被拦截如何解决 方法一:使用兼容模式 右键点击目标…

    2026年9月3日
    200
  • 16G内存8核16线程的计算机,其单接口并发量如何估算?

    评估单机并发处理能力 设计分布式系统时,准确评估单机并发处理能力至关重要,这直接关系到系统资源配置和微服务性能优化。本文探讨一台配置为16G内存、8核16线程的计算机的并发处理能力,目标是在平均响应时间500毫秒的条件下,估算其单接口并发量。 影响并发量的关键因素 准确计算并发量并非易事,它取决于多…

    2026年9月3日
    100
  • Java微服务学习遇到瓶颈?有哪些深入学习资源推荐?

    进阶Java微服务学习资源推荐 精通Spring全家桶、Redis、MQ、ES等技术后,仍感觉Java微服务学习遇到瓶颈?别担心,这份资源清单将助您突破瓶颈,更上一层楼。 推荐学习资源: Pdai.Tech 立即学习“Java免费学习笔记(深入)”; Pdai.Tech是一个专注于Java微服务、分…

    2026年9月3日
    300
  • VSCode怎么发出命令语句_VSCode命令面板使用与自定义命令教程

    答案:VSCode命令面板可通过快捷键Ctrl+Shift+P或Cmd+Shift+P打开,用于执行如格式化文档、跳转文件等预设命令,支持通过keybindings.json自定义快捷键,结合tasks.json可绑定任务,扩展命令自动集成,问题可通过重启、检查冲突或查看输出面板解决。 VSCode…

    2026年9月3日
    200
  • 如何为iPhoneSE2016下载固件?老机型固件获取方法

    首先使用爱思助手或ipsw.me下载所需固件,再通过iTunes或Finder进入恢复模式刷机,可解决iPhone SE无法获取旧系统文件的问题。 如果您尝试为您的iPhone SE(2016款)下载固件,但无法通过常规方式获取旧版本系统文件,则可能是由于苹果已关闭对特定版本的签名验证。以下是解决此…

    2026年9月3日
    100
  • Win7系统关不了机怎么回事?

    Win7系统关不了机怎么回事?Win7系统关不了机怎么回事?Win7系统关不了机怎么回事?Win7系统关不了机怎么回事?

    win7系统是微软推出的一款较为稳定的操作系统,相信不少用户仍在使用它。然而,即便如此,偶尔也会遇到一些小问题,比如关机失败的情况。如果遇到这种情况,不用着急,接下来就为大家介绍win7无法正常关机的一些原因及其解决办法。 许多用户从win10系统切换回win7系统后,可能会发现win7系统偶尔会出…

    2026年9月3日 用户投稿
    100
  • linux下swap分区作用详解

    本文主要介绍了详细解读linux下swap分区的作用,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下,希望能帮助到大家。 本文研究的主要是linux下swap分区的相关内容,具体介绍如下。 swap分区介绍 嵌入式Linux中文站消息,Linux系统的Swap分区,即交换区,Swap空…

    用户投稿 2026年9月3日
    200
  • 认识基本的mfc控件

    在#%#$#%@%@%$#%$#%#%#$%@_0f4137ed1502b5045d6083aa258b5c++42程序中,常见的界面元素包括按钮、复选框、文本框和下拉列表等,这些元素被称为控件。许多常用的控件已被集成到操作系统中,在visual c++中,这些控件的使用简便到可以直接通过“拖放”方…

    2026年9月3日
    100
  • win10电脑重启快捷键是哪个

    win10电脑重启快捷键是哪个win10电脑重启快捷键是哪个win10电脑重启快捷键是哪个win10电脑重启快捷键是哪个

    有时我们可能需要重新启动电脑,对于windows 10系统来说,最常见的方式是点击开始菜单中的电源按钮。当然,也可以通过快捷键来快速重启系统。那么,windows 10的电脑重启快捷键是什么呢?接下来,小编就为大家分享这些快捷键。 电脑重启快捷键 方法一 首先打开Windows 10的桌面,确保已经…

    2026年9月3日 用户投稿
    100
  • win10正式版安装后上网速度变慢怎么办

    在使用windows 10正式版的过程中,难免会碰到一些令人头疼的问题,例如升级系统后无法联网、音效消失、程序兼容性差等。这些问题确实会影响我们的使用体验。近期有用户反馈,在升级至windows 10之后,发现网络连接速度明显下降,这无疑会影响到系统的运行效率。那么,面对这一情况,我们应该如何应对呢…

    2026年9月3日
    200
  • 如何查看电脑温度_CPU和显卡温度监控方法

    监控电脑cpu和显卡温度的方法有多种,应根据需求选择合适方式:1. 使用硬件监控软件如hwmonitor或aida64,可实时查看温度、电压等信息,其中hwmonitor免费且简洁,aida64功能更全面但收费;2. 进入bios查看,开机时在“hardware monitor”中可读取cpu温度,…

    2026年9月3日
    200
  • linux服务器下查看mysql的安装信息实例分享

    linux服务器下查看mysql的安装信息实例分享linux服务器下查看mysql的安装信息实例分享linux服务器下查看mysql的安装信息实例分享linux服务器下查看mysql的安装信息实例分享

    本文主要介绍了linux服务器下查看mysql的安装信息,需要的朋友可以参考下,希望能帮助到大家。 查看mysql的安装信息: #ps -ef | grep mysql usr/bin/mysql 是指:mysql的运行路径 var/lib/mysql 是指:mysql数据库文件的存放路径 usr/…

    2026年9月3日 用户投稿
    200

发表回复

登录后才能评论
关注微信