elastic-job介绍

elastic-job

elastic-介绍

ElasticJob 是一个分布式调度解决方案,由 2 个相互独立的子项目 ElasticJob-Lite 和 ElasticJob-Cloud 组成。

ElasticJob-Lite 定位为轻量级无中心化解决方案,使用jar的形式提供分布式任务的协调服务;
ElasticJob-Cloud 使用 Mesos 的解决方案,额外提供资源治理、应用分发以及进程隔离等服务。

功能列表

  • 分布式调度协调
  • 弹性扩容缩容
  • 失效转移
  • 错过执行作业重触发
  • 作业分片一致性,保证同一分片在分布式环境中仅一个执行实例
  • 自诊断并修复分布式不稳定造成的问题
  • 支持并行调度
  • 支持作业生命周期操作
  • 丰富的作业类型
  • Spring整合以及命名空间提供
  • 运维平台

整体架构

elastic-job介绍_第1张图片

ElasticJob-Lite 与ElasticJob-Cloud 区别

elastic-job介绍_第2张图片ElasticJob-Lite 的优势在于无中心化设计且外部依赖少,适用于资源分配稳定的业务系统。

作业配置

`

    
    

    
    
    
            
            
    

    
    
    
    
            
            
            
            
            
            
            
            
            
            
    
    
    
            
    

`

基本操作-策略

1.作业分片

作业分片处理策略,默认提供三种
策略 说明

AverageAllocationJobShardingStrategy

根据分片项平均分片

OdevitySortByNameJobShardingStrategy

根据作业名称哈希值的奇偶数决定按照作业服务器 IP 升序或是降序的方式分片

RotateServerByNameJobShardingStrategy

根据作业名称轮询分片

自定义分片策略可通过实现JobShardingStrategy接口实现

2.线程池

线程池策略,用于执行作业的线程池创建。

策略 说明

CPUUsageJobExecutorServiceHandler

根据 CPU 核数 * 2 创建作业处理线程池

SingleThreadJobExecutorServiceHandler

使用单线程处理作业

自定义线程池策略可通过实现JobExecutorServiceHandler接口实现

3.错误处理

错误处理策略,用于作业失败时的处理策略。

策略 说明

LogJobErrorHandler

记录作业异常日志,但不中断作业执行

ThrowJobErrorHandler

抛出系统异常并中断作业执行

IgnoreJobErrorHandler

忽略系统异常且不中断作业执行

EmailJobErrorHandler

发送邮件消息通知,但不中断作业执行

WechatJobErrorHandler

发送企业微信消息通知,但不中断作业执行

DingtalkJobErrorHandler

发送钉钉消息通知,但不中断作业执行

4.作业类名称提供

作业类名称提供策略,用于在不同的容器环境下提供准确的作业类名称。

策略 说明

DefaultJobClassNameProvider

标准环境下的作业类名称提供策略

SpringProxyJobClassNameProvider

Spring 容器环境下的作业类名称提供策略

自定义作业名称策略可通过实现JobClassNameProvider接口实现

你可能感兴趣的:(中间件,java)