Kubernetes分布式任务调度方案 - Elastic-job-lite

news/2024/7/6 5:33:34

鉴于k8s平台支持自动伸缩(扩容、缩容),原项目进行扩容(多实例)后的定时任务调度会出现多实例重复执行任务的情况,

所以需要将定时任务调度切换到分布式方案(支持分片),建议采用Elastic-job-lite框架,

结合k8s自动伸缩和Elastic-job-lite-console监控(启动、暂停、终止、手动触发)、修改(分片总数、Cron时间表达式、任务参数、分片参数等)任务配置的功能,可以对分布式定时任务调度进行灵活的监控。

 

Elastic-job-lite服务端部署:

(1)依赖zookeeper;

(2)elastic-job-lite-console控制台安装;

(3)可外接数据源进行任务追踪记录(选用);

 

Elastic-job-lite客户端集成:

(1)Maven依赖

(2)实现ElasticJob(SimpleJob, DataflowJob, ScriptJob)接口

        (可获得当前shardingItem、shardingTotoalCount,客户端需要自己实现数据分片逻辑,例如Sql查询语句添加条件: id%shardingTotalCount=shardingItem)

(3)原始API集成;

(4)Spring配置集成;


Elastic-job-lite-console控制台界面:

 

扩展:

Elastic-job-lite依赖Zookeeper来实现分布式程序协调,可考虑监听kubernetes API来实现动态的服务发现(客户端多实例动态发现),已达到和Kubernetes平台深度融合(舍弃掉Zookeeper依赖),未来希望可以深入研究一下......;

 

 

 

 

 


http://www.niftyadmin.cn/n/1152333.html

相关文章

一些日常忽略的细节程序设置

2019独角兽企业重金招聘Python工程师标准>>> 一、前后台COOKIE设置 前台: $cookie_time SYS_TIME86400*30; if(!$r[lang]) $r[lang] zh-cn; if(!isset($cookietime)) {$get_cookietime param::get_cookie(cookietime); } $_cookietime $cookietime ?…

在使用JPA进行数据库操作时,插入中文报错

文章目录问题描述原因解决办法问题描述 在学习JPA的使用时,我使用 save() 方法去更新表和插入新的记录; 当我数据中含有中文时,会报错 当我数据中没有中文时,正常使用 原因 数据库的字符编码问题, 我使用的mysql数据…

Mybatis-Redis二级缓存分布式实现

Mybatis二级缓存默认采用的org.apache.ibatis.cache.impl.PerpetualCache实现的&#xff08;基于内存中Map<Object, Object> cache&#xff09;&#xff0c;在项目进行分布式部署时&#xff0c;无法保证多实例间的分布式缓存一致性&#xff0c;故需要对该Cache实现进行修…

.NET/Mysql-petatoco连接mysql数据库

安装mysql数据库 用nugget添加.net连接mysql数据库的组件

java面向对象技术的学习笔记

文章目录面向对象与面向过程不同点面向对象的特征面向对象的开发优点重载&#xff08;overload&#xff09;和覆盖&#xff08;override&#xff09;重载注意项覆盖注意项重载与覆盖的区别抽象类与接口相同点不同点内部类获取父类的类名final、finally和finalize的区别finalfin…

Docker制作Redis镜像(基于Docker官方Redis镜像+Dockerfile)

DockerHub官方Redis镜像&#xff1a;https://hub.docker.com/_/redis 使用说明&#xff08;截图&#xff09;如下&#xff1a; 构建过程&#xff1a; &#xff08;1&#xff09;自定义redis.conf&#xff1b; 参照官方redis.conf&#xff0c;具体修改如下&#xff1a; &…

提升——树形DP

这里讲提高一点的内容&#xff0c;所以没有树形DP基础的&#xff0c;先看一下基础部分&#xff1a; 浅说——树形DP 闲言不表&#xff0c;看第一题。 这道题是典型的树上最长链问题。&#xff08;就是一个模板题&#xff09; 给定一棵树&#xff0c;树上共有N个节点(N<5000)…

Tkinter 控件详细介绍

Tkinter 控件详细介绍 1.Button 按钮。类似标签,但提供额外的功能,例如鼠标掠过、按下、释放以及键盘操作/事件 2.Canvas 画布。提供绘图功能(直线、椭圆、多边形、矩形) ;可以包含图形或位图 3.Checkbutton 选择按钮。一组方框,可以选择其中的任意个(类似 HTML 中的 checkbox…