人大金仓KFS支持定时计划解析和入库(含GUI)需求分析

本文详细描述了在业务高峰期如何通过KFS实现源端和目标端数据的定时解析与入库,针对不同部署形式和资源消耗进行了分析,并对比了多种定时任务实现方法,如JavaTimer、Spring框架、Quartz和XXL-Job等。
摘要由CSDN通过智能技术生成

KFS支持定时计划解析和入库(含GUI)需求分析

关键字:

Kingbase FlySync、源端解析、目标端入库、java定时任务、人大金仓

需求背景

在现场项目中,客户会在存在业务繁忙时间段,在此阶段客户希望将更多机器的资源应用在自身业务中,不能因为KFS系统的数据同步等占用太多IO资源而影响自身业务,希望在对源端和目标端数据同步性要求不高的系统中,控制源端解析和目标端入库的执行时间和效率,在不人为操作开启或停止系统的情况下,使源端解析和目标端入库执行定时计划。基于此客户业务产生以下几点需求。

  1. 设置定时解析计划,可以自定义时间使源端定时解析,同时在不解析的时候不要占用资源;
  2. 设置定时解析计划,在自定义时间内,控制源端解析速度,或者用网络方式限制,最终达到少占用资源,不影响数据库使用的目标;
  3. 设置定时解析计划,控制目标端入库时间(一般是晚上,23:00-3:00,21:00-次日7:00),保证在业务不繁忙情况下再进行数据入库。

KFS部署形式分为两中:分离部署、集中部署。

分离部署下KFS消耗的数据库节点资源有:

  • 网络IO(远程读取增量日志)
  • CPU(源端KES、Logminer解析)
  • 数据库内存(数据库连接、批量入库)

集中部署KFS消耗的数据库节点资源有:

  • 网络IO(远程读取增量日志)
  • CPU(源端KES、Logminer解析)
  • 数据库内存(数据库连接、批量入库)
  • 磁盘IO(KUFL写入、读取)
  • 物理机内存(KFS程序占用)

上述资源中,KFS自身可控制的项只有集中部署下的物理机内存(通过JVM参数控制)。其他项均无法控制,因此需要提供手段可以控制上述资源项的使用。常见的方式有:通过系统级控制命令、程序本身暂停。

GUI功能需求分析

  1. 任务创建

用户可以通过在目标端或者源端创建定时任务,控制源端解析和目标端入库时间,或者控制规定时间内源端解析和目标端入库速度。

  • 任务名称
  • 任务节点(源端/目标端)
  • 同步任务类型(停止同步,限速同步)
  1. 调度管理

用户新建任务后,可以通过调度管理来控制任务执行的策略。

  • 调度名称
  • 执行任务
  • 调度策略(一次,每小时,每日,每周,每月)
  • 执行日期(可选)
  • 执行时长(执行开始时间-执行结束时间)

数据同步定时计划需求分析

  1. 定时计划节点(源端/目标端)

保证定时计划在源端和目标端都可以执行。

2、定时计划类别

  • 在计划时间内停止执行
  • 在计划时间内开始执行
  • 在计划时间内限速执行
  1. 在规定时间内解析/入库固定数量的数据
  2. 在规定时间内解析/入库固定大小的数据

常见定时任务实现方法

  • java.util.Timer和java.util.TimerTask

Timer和TimerTask是java提供的基本定时任务实现方式,Timer类用于安排以后在后再线程中执行的任务,而TimerTask是一个抽象类,允许创建一个在Timer中运行的任务。Timer方法设置定时任务,简单易用,适合设置简单的定时任务,不适合大规模或复杂的定时任务,并且对并发处理支持不足。

  • SheduleExecutorService

SheduleExecutorService是java.util.concurrent包下的一个接口,用于在指定的延迟之后或以固定的时间间隔重复执行任务,它提供了更灵活的调度选项和更好的并发支持,可以控制任务的执行,取消和获取执行结果,但是应用相对复杂。

  • Spring框架的@Scheduled注解

Spring框架提供了@Scheduled注解,可以用于在方法上标记定时任务的执行,需要结合Spring容器使用,适合spring项目,使用简单,但是需要spring环境,没办法在非spring项目中使用。

  • Quartz框架

Quartz是一个功能强大、开源的作业调度库,允许调度任务执行,为程序提供了丰富的功能,如支持任务调度、集群支持、错过任务等,适合大规模或复杂的定时任务,但是使用相对复杂,配置繁琐。

  • XXL-Job

XXL-Job是一个轻量级分布式任务调度平台,特点是平台化、易部署,开发迅速,学习简单,轻量级,易扩展。由调度中心的执行器功能完成定时任务的执行,调度中心负责统一调度,执行器负责接收调度并执行,XXL-Job适合应用于中小型项目。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值