暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

原创 KFS补给站 2024-01-05
409


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适合应用于中小型项目。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论