这是我参与「第五届青训营 」伴学笔记创作活动的第 11 天. 分布式定时任务的优势:
通过集群的方式进行管理调度,大大降低了开发和维护成本; 分布式部署,保证了系统的高可用性,伸缩性,负载均衡,提高了容错; 可以通过控制台部署和管理定时任务,方便灵活高效; 任务都可以持久化到数据库,避免了宕机和数据丢失带来的隐患,同时有完善的任务失败重做机制和详细的任务跟踪及告警策略。 分布式互斥锁: 互斥锁也叫排他锁,用于并发时管理多进程和多进程同一时刻只能有一个进程或者线程操作一个功能。我们将进程,线程中的锁延伸到互联网上,实现对一个节点运行的进程或线程加 锁,解锁操作。这样便能控制节点上的进程或线程的并发。有两台服务器运行定时任务,其中serverA的T2做了加锁操作,其他程序必须等它释放锁了才能运行。 那么如果serverA在加锁的过程中,出现宕机怎么办,是否会一直处于别锁状态。那么我们可以在每个锁都设置一个超时阈值,一旦超时便自动解锁。这样就不会因为宕机导致锁一直不被释 放。另外我们还要考虑命名空间的问题,主要是防止出现同名锁,导致被覆盖。 Quartz是Java领域最著名的开源任务调度工具。Quartz提供了极为广泛的特性如持久化任务,集群和分布式任务 特点: 完全由Java写成,同时可以很方便的和java的另外一个框架spring集成; 强大的调度功能:支持丰富多样的调度方法,可以满足各种常规及特殊需求; 灵活的应用方式:支持任务和调度的多种组合方式,支持调度数据的多种存储方式; 分布式和集群能力,负载均衡和高可用性