北京的网页建设公司_办理宽带是怎么收费的_seo技术培训中心_网络推广发展
2025/1/13 10:45:14
来源:https://blog.csdn.net/qq_44810930/article/details/145092703
浏览:
次
关键词:北京的网页建设公司_办理宽带是怎么收费的_seo技术培训中心_网络推广发展
北京的网页建设公司_办理宽带是怎么收费的_seo技术培训中心_网络推广发展
分布式任务调度简介
- 主流工具:在分布式任务调度技术中,XXL - Job 是目前较为主流的工具。
- 应用场景:在 Java 后台项目中,任务调度技术应用广泛。以 XXL - Job 为例,它主要解决了以下四个常见问题:
- 集群任务重复执行:相比 Spring Task 在集群环境下可能出现多个实例执行同一任务的冲突情况,XXL - Job 能有效避免此类问题。
- Cron 表达式管理:Spring Task 将 Cron 表达式定义在代码中,而 XXL - Job 可在页面上定义,管理和修改更灵活便捷。
- 定时任务失败处理:提供统一管理页面,能收集错误信息,支持故障转移和邮件告警功能,便于对定时任务失败情况进行处理和监控。
- 任务量大的分片执行:像支付宝花呗每月通知大量用户还款的场景,任务量巨大时,XXL - Job 的分片执行功能可实现高效任务处理。
XXL - Job 路由策略
- 策略定义:路由策略是指在分布式任务调度中,确定任务分配到哪台机器执行的方式。在 XXL - Job 中创建任务时可指定路由策略,常见的有以下多种:
- 轮询:任务按顺序轮流分配到不同实例执行,例如任务依次分配到实例一、实例二,再循环。
- 固定选择:可固定选择第一台或最后一台实例执行任务,简单直接。
- 随机:任务随机分配到某台机器执行,无特定规律。
- 一致性哈希:依据哈希算法将任务固定分配到某台机器,且能保证任务均匀分布在不同机器上。
- 最不经常使用:优先选择使用频率较低的机器执行任务,有助于均衡机器负载。
- 最近最久未使用:优先选择最久未执行任务的机器,提高资源利用率。
- 故障转移:当任务执行实例出现故障时,自动将任务转移到健康实例执行,保障任务顺利进行,在实际应用中使用较多。
- 忙碌转移:若某实例太忙无法执行当前任务,会将任务转移到空闲实例执行,优化任务分配。
- 分片广播:适用于大数据量任务,会广播触发集群中所有机器执行一次任务。例如在大规模用户通知场景中,可确保所有用户都能被及时通知到。
XXL - Job 任务执行失败的解决办法
- 初步设置:首先可设置路由策略为故障转移,并在创建任务时设置失败重试次数。当任务执行失败时,系统会按照设置进行重试,增加任务成功执行的概率。
- 进一步处理:若上述设置后任务仍失败,可查看调度日志分析原因。调度日志详细记录了任务执行过程,有助于定位问题所在。同时,可设置邮件告警通知相关负责人。在创建任务页面可设置告警邮件及指定接收邮箱,并且在部署调度中心代码时,需在
spring.mail
配置相关邮箱信息,确保邮件能正常发送,以便负责人及时知晓任务失败情况并进行处理。
XXL - Job 大数据量任务执行方案
- 策略选择:对于大数据量任务,需采用分片广播路由策略。通过这种策略,能充分利用集群资源,提高任务执行效率。
- 执行逻辑:在任务执行时,按照取模方式(任务项取模总分片数)将任务分配到对应的机器。例如,若有三台机器(总分片数为 3),任务 1、4、7 会分配到分片一的机器执行,任务 2、5、8 分配到分片二的机器,任务 3、6 分配到分片零的机器。在具体代码中,可获取两个关键参数:
index
(当前分片号)和 total
(总分片数),利用这两个参数按照取模规则执行任务代码,从而实现将大数据量任务分摊到多个实例同时执行,确保任务快速完成。