(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210792245.7
(22)申请日 2022.07.07
(71)申请人 浪潮云信息技 术股份公司
地址 250100 山东省济南市高新区浪潮路
1036号浪潮科技园S01号楼
(72)发明人 赵锦 邓光超 孙兴艳
(74)专利代理 机构 济南信达专利事务所有限公
司 37100
专利代理师 孙园园
(51)Int.Cl.
G06F 9/50(2006.01)
G06F 9/54(2006.01)
(54)发明名称
基于声明式API的数据传输系统资源调度的
方法及存 储介质
(57)摘要
本发明公开了基于声明式API的数据传输系
统资源调度的方法及存储介质, 属于Kubernetes
环境下资源调度技术领域, 本发 明要解决的技术
问题为如何利用Kubernetes资源编排能力实现
对数据传输系统资源的方便快捷调度, 采用的技
术方案为: 该方法具体如下: 自定义API 资源类型
CRD: 分别定义数据传输系统的采集端资源、 入库
端资源和消息中间件资源的资源类型CRD; 其中,
资源类型CRD的组为dts; 应用对应资源类型CRD
的资源描述文件对采集端资源、 入库端资源和消
息中间件资源进行调度, 并通过自定义控制器捕
获应用的资源文件实现对应的资源调度工作; 通
过对资源文件的定义完成底层物理资源与业务
逻辑资源的抽象, 并通过自定义控制器实现对业
务资源的调度。
权利要求书3页 说明书9页 附图1页
CN 115202874 A
2022.10.18
CN 115202874 A
1.一种基于声明式API的数据传输系统资源调度的方法, 其特征在于, 该方法具体如
下:
自定义API资源类型CRD: 分别定义数据传输系统的采集端资源、 入库端资源和消息中
间件资源的资源类型CRD; 其中, 资源类型CRD的组为dts;
应用对应资源类型CRD的资源描述文件对采集端资源、 入库端资源和消息中间件资源
进行调度, 并通过自定义控制器捕获应用的资源文件实现对应的资源调度工作;
通过对资源文件的定义完成底层物 理资源与业务逻辑资源的抽象, 并通过自定义控制
器实现对业 务资源的调度。
2.根据权利要求1所述的基于声明式API的数据传输系统资源调度的方法, 其特征在
于, 所述数据传输系统包括采集组件、 消息中间件和入库组件, 采集组件读取数据后写入消
息中间件, 消息中间件对读取的数据进 行缓存, 以保证数据的完整性, 并将采集组件与消息
中间部署在一个pod中; 采集组件和消息中间件分别定义一个类型dtsReader的资源类型
CRD, 入库组件定义 一个类型dtsWriter的资源类型CRD;
其中, 采集组件用于从源端数据库读取 数据;
消息中间件用于数据的保存与传输;
入库组件用于将采集的数据写入目的数据库。
3.根据权利要求2所述的基于声明式API的数据传输系统资源调度的方法, 其特征在
于, 所述dtsReader与dtsWriter的资源类型CRD的字段 具体如下:
taskId: 数据传输任务的唯一标识;
Version: 产品版本号, 后台数据库采集组件和入库组件的版本号与产品版本号 一致;
isAvailable: 资源是否可用;
dbInfo: 数据源信息, 源端或目的端数据库的连接信息;
task: 任务配置信息, 任务配置信息包括表信息、 字段信息及相关的传输策略参数;
resources: 资源信息, 资源信息包括需要拉起的pod的cpu信息、 内存信息及存 储信息。
4.根据权利要求1所述的基于声明式API的数据传输系统资源调度的方法, 其特征在
于, 自定义控制器是指为资源类型CRD创建一个对应的CDR控制器, 实现当CRD对象发生变化
时, 触发CRD控制器里面的业 务逻辑代码; 具体如下:
数据传输系统创建自定义控制器dts ‑Operator;
自定义控制器dts ‑Operator使用Reflector的ListAndWatch方法获取并监听对象实例
的变化;
当任何一个实例有任何变化, Re flector均会收到事件通知, 并收到通知后把对象实例
对应的事 件和对象的组合存 入一个先进先 出的队列中;
自定义控制器dts ‑Operator使用Informer不断从先进先出的队列中读取对象,并判断
事件的类型 是dtsReader或dtsWriter:
确定事件的类型后, 根据事 件的类型创建dtsReader或dtsWriter所需要的资源。
5.根据权利要求4所述的基于声明式API的数据传输系统资源调度的方法, 其特征在
于, 创建dtsReader所需的资源具体如下:
自定义控制器dts ‑Operator创建采集组件所依赖的消息中间件nats的pod及service
资源;权 利 要 求 书 1/3 页
2
CN 115202874 A
2在消息中间件nats中, 创建jetst ream及co nsumer资源;
在消息中间件nats 资源部署完成后, 部署采集组件的pod、 service及存 储资源;
通过监控 对应事件, 并可将物理资源及业 务配置均按自定义的逻辑进行处 理;
当处理完成后, 数据传输任务所需的采集组件便可正常工作;
创建dtsWriter所需的资源具体如下:
自定义控制器dts ‑Operator创 建入库组件所需要的pod及service物理资源以及生成
数据传输任务相关的配置文件;
将消息中间件nats相关的信息写入到配置文件中;
通过监控 对应事件, 并可将物理资源及业 务配置均按自定义的逻辑进行处 理;
当处理完成后, 数据传输任务所需的入库组件便可正常工作。
6.根据权利要求4或5所述的基于声明式API的数据传输系统资源调度的方法, 其特征
在于, 自定义控制器dts ‑Operator依靠In former的代码块从Kubernetes的APIServer里获
取dtsWriter对象和dtsReader对象, Informer与API对象一一对应, 数据传输过程中传递给
自定义控制器dts ‑Operator的是一个Netw ork对象的I nformer;
其中, 创建Informer工厂时, 为Informer工厂传递一个networkClient, Network
Informer使用networkClient与APIServer建立连接, 维护Network Informer与APIServer
连接的是Informer所使用的Reflector包中的ListAndWatch机制, ListAndWatch机制用于
获取并监听Netw ork对象实例的变化;
在ListAndWatch机制下, 一旦APIServer端有新的Network实例被创建、 删除或者更新,
Reflector均会收到对应Network实例的事件通知, 该事件及该事件对应的API对象组合就
被称为增量Delta, 并放入一个增量先进先出队列中; 同时, Inform会不断地从增量先进先
出队列读取增量, 每读取一个增量, Informer便会判断该增量里的事件类型, 并创建或更新
本地对象的缓冲。
7.根据权利要求6所述的基于声明式API的数据传输系统资源调度的方法, 其特征在
于, Informer具有如下功能:
①、 同步本地缓存; Informer自带缓存和索引机制; 触发Handler的客户端库, 本地缓存
在Kubernetes中被称为Store, 索引被称为Index; Informer使用Reflector包, Reflector包
通过ListAndWatch机制获取并监视API对象变化的客户端封装; Reflector包和Informer之
间用一个增量先进先 出队列进行协同;
②、 根据事件类型, 触发实现注册好的ResourceEventHandler; 通过监听到的事件变
化, Informer实时地更新本地缓存,并且调用事件对应的EventHandler, 每经过
resyncPeriod指定的时间,Informer维护的本地缓存均会使用最近一次LIST返回的结果强
制更新一次,从而保证缓存的有效性; 其中, 创建自定义控制器dts ‑Operator时, 注册给
ResourceEventHandler对应的I nformer;
informer在编写的控制循环前,使用一个工作队列来进行协同; 其 中, informer控制循
环的逻辑具体如下:
等待Informer完成一次本地缓存的数据同步操作;
通过gorouti ne启动一个或多个无限循环任务;
在每一个 循环周期中, 执 行的就是 数据传输业 务逻辑代码;权 利 要 求 书 2/3 页
3
CN 115202874 A
3
专利 基于声明式API的数据传输系统资源调度的方法及存储介质
文档预览
中文文档
14 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共14页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 13:31:26上传分享