elastic-job使用及过程中遇到的问题

本文介绍了Elastic-Job的使用,包括其简单介绍、依赖添加、启动方法、注意事项,以及在实际应用中遇到的如依赖冲突、连接Zookeeper问题等,并提到了解决策略。还提及了相关文档和运维平台的安装部署过程。
摘要由CSDN通过智能技术生成

以前的公司项目分布式调度用的两种方式,一是通过配置文件进行分区,一是用阿里的一个dtss控件;配置文件的方式就不说了,比较挫;而阿里的dtss控件存在问题,而且该控件也已经停止维护更新(别的控件又要收钱)。
所以找到了这个elastic-job,目前只用到了其中的SimpleJob,后续的再更新。。。

官方文档

官网地址:http://elasticjob.io/index_zh.html
官网文档:http://elasticjob.io/docs/elastic-job-lite/00-overview/

使用

简单介绍:

这个框架的任务分派,简单来说就是,通过zookeeper知道线上总共有多少台执行机器,然后把分片平均分到线上的机器上,而每次机器的上线、下线都会触发分片的重新分配。
而分片其实就是数字,数字将平均分配到几台机器上,例如:
设置总分片数为4片(0,1,2,3总共4个分片),线上2台机器,机器A可能被分配到0、1两个数字,机器B被分配到2、3两个数字,然后就可以根据这个被分配到的数字进行任务划分。

依赖添加:

<!-- 引入elastic-job-lite核心模块 -->
<dependency>
    <groupId>com.dangdang</groupId>
    <artifactId>elastic-job-lite-core</artifactId>
    <version>2.1.5</version>
</dependency>
<!-- 使用springframework自定义命名空间时引入 -->
<dependency>
    <groupId>com.dangdang</groupId>
    <artifactId>elastic-job-lite-spring</artifactId>
    <version>2.1.5</version>
</dependency>

实现类:

    public class TestJob implements SimpleJob{
   

        private Logger logger = LoggerFactory.getLogger(TestJob.class);

        @Override
        public void execute(ShardingContext shardingContext) {
            // 分片数字以及作业的一些信息都在ShardingContext这个类中
            logger.info(...);
        }
    }

启动方法:

有两种启动方式:代码启动和配置文件加载启动,

代码启动:

    // 启动方法
    public void init(){
        new JobScheduler(getRegistryCenter(), getJobConfiguration()).init();
    }

    // 配置zookeeper连接信息,以及进行连接
    public CoordinatorRegistryCenter getRegistryCenter() {
        // 连接Zookeeper服务器的列表,包括IP地址和端口号,多个地址用逗号分隔,如: host1:2181,host2:2181
        // Zookeeper的命名空间
        CoordinatorRegistryCenter regCenter = new ZookeeperRegistryCenter(new ZookeeperConfiguration(zookeeperIps, zookeeperNamespace));
        regCenter.init();
        return regCenter;
    }

    // 配置job的信息
    public LiteJobConfiguration getJobConfiguration(){
        // 定义作业核心配置
        JobCoreConfiguration simpleCoreConfig = getJobCoreConfiguration();
        // 定义SIMPLE类型配置
        SimpleJobConfiguration simpleJobConfig = getSimpleJobConfiguration(simpleCoreConfig);
        // 定义Lite作业根配置
        LiteJobConfiguration simpleJobRootConfig = getLiteJobConfiguration(simpleJobConfig);

    
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值