基于nginx+xxl-job+springboot高可用分布式任务调度系统实战(集群版)
2019-02-22 22:00
1151 查看
一.安装部署XXL-JOB调度中心
一.下载源码: https://github.com/xuxueli/xxl-job http://gitee.com/xuxueli0323/xxl-job 二.如下图所示,修改配置文件, a.执行sql文件 tables_xxl_job.sql b.修改数据库地址
三.部署xxl-job-admin到两台两台服务器 说明:1.这里的服务器分别是 172.25.62.101, 172.25.62.102 2.两台服务器可以避免单点故障,实现调度平台的高可用
二.安装nginx(参考之前的博客)
1.修改配置,如下图:
三.启动nginx和xxl-job-admin
说明:1.172.25.62.101 www.gdz.com #本地hosts文件配置域名映射 2.输入域名 http://www.gdz.com/xxl-job-admin/ 3.看到如下图,说明高可用的调度平台已经搭建好
四.添加定时任务(执行器)
说明:1.源码中有五种方式添加定时任务,这里使用springboot。 2. 新建springboot项目(也可以直接在源码上修改,打包) 3.引入maven依赖 <dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version>2.0.1</version> </dependency> 3. 将源码包下的XxlJobConfig配置文件拷贝到自己的项目目录下,并修改包路径 4. 修改配置文件 5. 添加自己的定时任务
- 源码中有五种方式添加定时任务,这里使用springboot。
- 将源码包下的XxlJobConfig配置文件拷贝到自己的项目目录下,并修改包路径
- 添加自己的定时任务
- 修改配置文件
- 新增执行器
- 新增任务
五.测试一下
两台服务器172.25.62.101,172.25.62.101部署了相同的定时任务代码,图中可以看出,现在只有172.25.62.101这台服务器执行定时任务,172.25.62.101没有执行。
此时将172.25.62.101执行器kill,这时定时任务转移到172.25.62.102服务器继续执行。
查看调度日志,可以看到定时任务正确执行
至此,高可用的分布式定时任务就已经ok了。但是还得思考个问题,为啥相同的代码在两台机器上只会执行一次?因为调度平台只会选择一个执行器去执行,通过得到执行器的机器地址,找到JobHandler,底层通过反射机制来执行定时任务代码。
相关文章推荐
- 【转载】基于Spring Boot + Quartz 的分布式任务调度系统
- java架构师、集群、高可扩展、高性能、高并发、性能优化、Spring boot、Dubbo、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战学习架构师之路
- 分布式任务调度系统xxl-job源码探究(二、服务中心)
- elastic-job+zookeeper实现分布式定时任务调度的使用(springboot版本)
- 分布式任务调度系统xxl-job源码探究(一、客户端)
- 分布式任务调度系统xxl-job相关问题补充
- SpringBoot整合Quartz定时任务 系统job Spring Boot教程 调度任务
- 分布式任务调度平台XXL-Job集群版搭建
- 分布式任务调度系统xxl-job搭建
- Spring整合Quartz定时任务 在集群、分布式系统中的应用
- 分布式任务调度平台XXL-JOB
- Spring整合Quartz定时任务 在集群、分布式系统中的应用(Mysql数据库环境)
- Spring整合Quartz定时任务 在集群、分布式系统中的应用
- 接入-分布式任务调度平台XXL-JOB
- 基于Spring Boot框架企业级应用系统开发全面实战
- 轻量级分布式任务调度框架XXL-JOB 学习笔记
- 分布式任务调度平台XXL-JOB
- java高并发分布式集群高可用网站系统架构实战
- 点我达分布式任务调度系统 - DaJob
- 分布式任务调度平台XXL-JOB