分布式定时任务实现概述 | 青训营笔记

302 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 8 天

今天我学习了Go掘金课的“分布式定时任务”,也就是视频课“后端入门-中间件”的5、6、7节课,课程视频总时长大约90分钟,我通过学习本节课程,学懂了实现定时任务的一些常见思路。

一、本堂课重点内容:

  • 本堂课的知识要点有哪些?

分布式定时任务的——发展历程、实现原理、业务应用

二、详细知识点介绍:

  • 本堂课介绍了哪些知识点?
  1. 定时任务的应用场景:
  • Windows批处理(.bat)
shutdown -s -t 600
  • Windows任务计划程序(计算机-管理-系统工具-任务计划程序)
  • Linux命令(CornJob)
30 2 * * * clean_log.sh
  • 单机定时任务(Java——Timer、ScheduledExecutorService、Go——Ticker)
  • 任务调度(Quartz,单任务极致控制,没有负载均衡)
  • 分布式定时任务(平台化管理、分布式部署、支持海量数据)
  1. 分布式定时任务的定义:分布式定时任务是把分散的、可靠性差的定时任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式。
  2. 分布式定时任务的特点:自动化、平台化、分布式、伸缩性、高可用
  3. 分布式任务的执行方式:单机任务、广播任务、Map任务、MapReduce任务
  4. 业内定时任务框架:
  • 美团:Xxl-job
  • 阿里巴巴: SchedulerX
  • 腾讯:TCT
  • 当当网:Elastic-job
  • 唯品会:Saturn
  1. 分布式定时任务的核心架构:控制台、触发器、调度器、执行器

三、实践练习例子:

  • 有什么实践举例帮助理解知识点?
    此次并没有git的实际项目,但是本次学习的课件中有所提及:
    Xxl-job、Elastic-job、Saturn
    这些都是业内大厂实际在使用的、开源的分布式定时任务框架,可以参考学习

四、课后个人总结:

  • 本章有什么知识点不容易掌握?
    可能直接通过理论理解框架会比较困难,希望后面会有实际的底层代码或是官方文档可供阅读的话也许会方便理解吧。
  • 什么地方容易与其他内容混淆?
    本节课逻辑比较清晰,也不太会出现混淆的情况。

五、引用参考:

  • 我参考了哪些外部博客/笔记/文章?
    我参考了掘金视频课中的“后端入门-Go框架设计与实践”,也就是此次掘金内部课程:
    juejin.cn/course/byte… 另外还参考了Foxtail-Grass Studio的专辑封面,作为此次笔记的封面
  • 文章中有什么地方是我参考引用了外部博客/笔记/文章的?
    主要是课程的主要知识点总结,采用了一边阅读课件一边记录的方式进行了个人的一些学习总结。