软件架构的发展过程,单体架构→单体集群架构→分布式架构→微服务架构。
分布式架构就是将单体结构拆分为若干服务,服务之间通过网络交互来完成用户的业务处理,以广泛的电商来说,可以将一个单体架构拆分为下面的分布式架构。

分布式系统具有如下特点:
通常任务调度的程序是集成在应用中的,比如优惠卷服务中,定义了发送优惠卷的调度程序,账单服务中定义了账单生成的调度程序,由于采用分布式架构,一个服务往往会部署多个冗余实例来运行我们的业务,在这种 分布式系统环境下的运行任务调度,就是分布式任务调度。

不管是任务调度程序集成在应用程序中,还是单独构建的任务调度系统,如果采用分布式调度任务的方式就相当于将任务调度程序分布式构建,这样就可以具有分布式系统的特点,并且提高任务的调度处理能力。
1.并行任务调度
并行任务调度实现靠多线程,如果有大量任务需要调度,此时光靠多线程就会有瓶颈了,因为一台计算机CPU的处理能力是有限的。
如果将任务调度程序分布式部署,每个节点还可以部署伪集群,这样可以让多台计算机共同去完成任务调度
2.高可用
若某个实例宕机,不影响其它实例来执行任务
3.弹性扩容
当集群中增加实例就可以提高并执行任务的处理效率
4.任务管理与监测
对系统中存在的所有定时任务进行统一管理及监测。让开发人员及运维人员能够实时了解任务执行的情况
5.避免任务重复执行
当任务调度以集群方式部署,同一个任务调度可能会执行多次,比如发放优惠卷,发多了赔钱,所以需要控制相同的任务在多个实例上只执行一次,考虑采用下面的方法: