分布式定时任务程序

介绍

基于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监听执行。

java分布式定时_分布式定时任务程序相关推荐

  1. python分布式任务调度_分布式定时任务调度框架

    1. 目标 把定时任务通过集群的方式进行管理调度,并采用分布式部署,保证系统的高可用,提高了容错.那么如何保证定时任务只在集群的某一个节点上执行,或者一个任务如何拆分为多个独立的任务项,由分布式的机器 ...

  2. java gui框架_推荐!程序员整理的Java资源大全

    构建 这里搜集了用来构建应用程序的工具. Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建.Maven优于Apache Ant.后者采用了一种过程化 ...

  3. java jta_JTA规范_分布式事务教程_田守枝Java技术博客

    JTA规范事务模型 Java事务API(JTA:Java Transaction API)和它的同胞Java事务服务(JTS:Java Transaction Service),为J2EE平台提供了分 ...

  4. java不规则算法_分布式id生成算法 snowflake 详解

    背景 在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识.如在支付流水号.订单号等,随者业务数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID显然不能满足需 ...

  5. Java jta 原理_分布式事务JTA实现Atomikos与Spring集成实践

    Atomikos官网无法访问,不过Maven中央库中具atomikos包.Atomikos集成Spring,Hibernate,Mybatis网上文章比较多,本文是通过JavaSE的方式借用Sprin ...

  6. java文件存储系统_分布式小文件存储系统

    #分布式图片存储系统(demo版) ##服务端启动流程: 1.启动nameserver: 运行ndfs.nameserver.NameServerMainClass的main方法.相应的端口和参数配置 ...

  7. java分布式全文检索_分布式全文检索服务器——ElasticSearch(1)

    写在前面 Elaticsearch,简称为es,es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储.检索数据:本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据.es也使用Jav ...

  8. mysql ef 分布式事务_分布式事务系列--分布式跨库查询解决方案 mysql federated引擎的使用...

    背景 在服务高度拆分,数据库不断细化切分的情况下,我们经常有连接多台数据库查询的需求,如果不断的把数据库连接的逻辑添加在代码中,那么这种耦合会越来越严重,这会给程序的拓展和维护带来很大的麻烦. mys ...

  9. python分布式事务_分布式事务的管理--atomikos

    在一些业务场景及技术架构下,跨库的事务时不可避免的,这时候如何统一管理事务,保证事务的强一致性是整个系统稳定.可用基石.一些中间件如tuxedo.cics就是凭借这个能力占据了金融.电信.银行等很大的 ...

最新文章

  1. IT业爆发“新人”争夺战
  2. busybox filesystem httpd php-5.5.31 sqlite3 webserver
  3. 如何“主动出击”提升网站的收录速度?
  4. python代码安全扫描工具
  5. 1082 Read Number in Chinese (25 分)【难 / 模拟 字符串】
  6. 系统视频教学视频教程_太极拳教学视频教程,董氏太极拳基本功训练方法视频...
  7. Gridview 隐藏列
  8. 下周开幕,给深圳的电子工程师准备的展会!
  9. java事件 socket_java中有关socket通信的学习笔记
  10. python中class_【机器学习基础】数学推导+纯Python实现机器学习算法11:朴素贝叶斯...
  11. hibernate中查询方式(一):
  12. 03173软件开发工具主观题汇总
  13. C# 根据EXCEL自动生成oracle建表语句
  14. Mixly 软件的基本应用
  15. 无线射频收发芯片SI24R1技术相关问题解答
  16. odoo13 学习 Actions 动作的定义
  17. CCS3.3 新建工程遇到的问题
  18. 读取Excel工具类ExcelUtils
  19. Jackson Western印迹检测分析物丨比色免疫印迹
  20. Cocos Creator | 通过 effect 实现卷轴展开和收拢效果

热门文章

  1. GitLab+Shell用户周期性数据统计分析工具(自动生成HTML格式)
  2. Java手写单例模式
  3. MFC单项选择题标准化考试系统
  4. arping指令即其参数对应的功能
  5. java license 验证方案,使用License3j实现简单的License验证
  6. 12.郝斌C语言笔记——枚举
  7. 摒除GITHUB“祸害”,跟GITHUB说拜拜 Fcloud自由安全的栖息之地
  8. HTML <bdi> 标签
  9. 流媒体服务器+终端(android,ios,web),如何从海康平台上拉流接入RTSP安防网络摄像头/海康大华硬盘录像机网页无插件直播流媒体服务器EasyNVR?...
  10. RS485接口连接设备数量总共有多少?