java分布式定时_分布式定时任务程序

分布式定时任务程序

介绍

基于zookeeper实现的分布式定时任务程序。

软件架构

包含:

1.zookeeper

2.quartz

3.curator

4.rabbitmq

5.springboot

6.redisson

描述

1.是通过curator内置的选举类来操作选举master。

2.master注册定时任务

3.当有接入worker时,会开始将任务发送给mq。

使用

1.配置zookeeper的连接地址(目前写死在AbstractInitParam类中),在resources/properties中配置redis和rabbitmq。

2.编写定时任务,需要使用注解@Schedule标注类,@ScheduleGetBeanFromMethod标注Bean方法,具体请查看com.l.scheduleserver.exampleScheduleBean包下的例子。

3.只会有一个leader,其他新接入的都为worker,worker动态接入。

使用说明

当前程序只完成了分布的分配与注册定时任务的获取,定时任务只能写在Java类中继承Job接口。

剩余需要完成项:

1.zookeeper的连接配置后续支持:properties格式解析。

2.增加告警提醒:邮件提醒。

3.新增elasticsearch,用于对打印日志搜索,降低维护成本。

4.新增脚本执行(优先级最高)。

目前的问题

1.目前master只能为1个,所以当注册的任务过多时,会成为瓶颈。

2.目前无法想到如何才能使得mq中的请求同步,在执行任务会重复调用。

3.目前只能写成代码的定时任务,局限性太大。当前的模式传输模式应该是对于sql脚本、shell脚本等才行。(目前这块还需要学习,无法实现)

V1.0

已初步完成主要逻辑。

V1.1

改变传输的逻辑,将原来的http调用注册,改为将任务发送至mq中,worker监听执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值