单机:quartz,或spring task,或使用@Scheduled注解。
如使用@Scheduled fixedDelay与线程池,可循环执行任务,
分布式任务调度系统:elastic-job,xxl-job等
elastic-job:基于quartz,由zookeeper进行一致性协调,选举leader。由leader进行任务分片,分片逻辑包括取模等。可为佐证
作业分片:
elastic-job的分片策略:
- 根据分片项平均分片:
例1:
例2:
例3:4片分到3个节点上,必有1个节点分到两片:
- 根据作业名称哈希值的奇偶数决定按照作业服务器 IP 升序或是降序的方式分片:
- 根据作业名称轮询分片