一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于分布式架构及容器化批量调度系统和方法与流程

2022-02-19 23:57:30 来源:中国专利 TAG:


1.本发明涉及数据处理技术领域,具体而言,涉及一种基于分布式架构及容器化批量调度系统和方法。


背景技术:

2.随着金融业务的快速发展,银行系统正遭受互联网金融的不断冲击,在此环境下要求银行系统及业务发展能够实现快速的推进,对银行的系统传统架构需要进行提升,重新定位银行的it架构及应用系统软件架构,打造可高效运行、长期可用不间断服务、可专业化经营的新一代业务系统。因此在银行系统建设上需要实现架构的突破,采用更加便于资源横向扩展、系统高性能、系统高内聚低耦合、业务产品化的系统架构方式来解决新时代下银行核心系统所面临的问题。
3.通过全新的应用架构和和it架构来实现银行业务的快速开发、系统的高性能、高稳定性。业务系统的批量处理要求时间更短,效率更高。跨业务系统之间的批量处理要求做到无缝衔接、同步执行、交叉执行等,业务系统批量也从传统的一日一批、日终处理等演进到日间高频率多批次执行。在架构上更呈现出批量执行有集中到分散的特点,借助分布式架构的实施推广,系统由传统单机高配置到多机低配置并行计算发展,批量的处理也从传统集中处理到数据分片拆分执行最终合并结果,从而提高了批量处理效率,将更多的单任务关键路径耗时过长的问题优化为单任务关键路径分片并行处理,大大压缩批量处理时间。
4.然而,在实际过程中批量调度与容器的结合运行存在诸多问题,如调度系统无法监控容器中任务状态,无法根据容器的任务专题灵活控制批量实例的存活周期、复调等。


技术实现要素:

5.鉴于上述问题,本发明提供了一种基于分布式架构及容器化批量调度系统和方法,实现了调度平台与容器管理平台和容器执行实例有效衔接,解决了容器执行实例拉起后状态调度状态不可控的问题。
6.为解决上述技术问题,本发明采用的技术方案是:一种基于分布式架构及容器化批量调度系统,包括容器管理平台、调度平台、镜像池和资源池,所述镜像池包括多个由业务子系统打包生成的批量镜像,所述资源池包括多个基于批量镜像创建的批量容器;所述容器管理平台用于根据任务执行指令生成相应的批量容器,并根据批量任务执行状态进行批量容器销毁操作;所述调度平台用于配置业务系统的批量任务信息,制定批量任务与批量镜像和执行系统之间映射关系,向容器管理平台发送任务执行指令,及跟踪批量任务执行状态并反馈至容器管理平台。
7.作为优选方案,所述调度平台包括实例管理中心、分配控制器、指令生成器、状态收集器和生命周期管理器;所述实例管理中心用于生成任务实例,设置任务实例状态、任务超时时间和任务并行状态;所述分配控制器用于检查资源池负载,设置任务执行模板信息,
将批量任务分配到任务实例;所述指令生成器用于生成任务执行指令,所述任务执行指令包括批量镜像拉取信息和批量容器信息。所述状态收集器用于接收经批量子应用执行的任务执行状态,所述批量子应用由批量容器拉起;所述生命周期管理器用于接收并检查批量镜像下批量任务的执行状态,将检查结果发送至实例管理中心。
8.作为优选方案,所述制定批量任务与批量镜像和执行系统之间映射关系,包括:将可用于部署的批量镜像id与调度平台的执行系统id和批量任务id进行绑定。
9.本发明还提供了一种基于分布式架构及容器化批量调度方法,包括如下步骤:s1,将业务系统批量任务的配置信息载入调度平台,并制定批量任务、批量镜像和执行系统之间映射关系;s2,通过调度平台启动批量任务,根据所述配置信息调用容器管理平台向其发送任务执行指令;s3,所述容器管理平台根据任务执行指令在镜像池中拉取批量镜像生成相应的批量容器;s4,批量容器启动后,拉起与所述批量容器对应的批量子应用,批量子应用执行批量任务,并实时反馈批量任务的执行状态至调度平台;s5,所述调度平台根据批量任务执行状态发起容器销毁命令;s6,所述容器管理平台根据所述容器销毁命令对批量容器进行销毁操作。
10.作为优选方案,所述调度平台包括实例管理中心、分配控制器、指令生成器、状态收集器和生命周期管理器,所述步骤s2包括:s201,通过实例管理中心启动批量任务,生成任务实例,并对任务实例状态、任务超时时间和任务并行状态进行检查;s202,通过分配控制器检查资源池负载,将批量任务分配到任务实例;s203,通过指令生成器生成任务执行指令,所述任务执行指令包括批量镜像拉取信息和批量容器信息;若存在与所述任务实例相对应的空闲批量容器,则将任务实例与空闲批量容器绑定,跳过步骤s3,反之,则执行步骤s3。
11.作为优选方案,在步骤s4中,所述实时反馈批量任务的执行状态至调度平台,包括:任务执行结束后,发送任务执行状态至状态收集器,再由状态收集器将任务执行状态转发至生命周期管理器,所述生命周期管理器检查批量镜像下是否存在需要执行的批量任务,以及检查批量任务是否需要持续执行。
12.作为优选方案,还包括:当任务执行状态为执行中,且执行时间超过第一预设时间,则发出告警通知,若执行执行时间超过第二预设时间,则解除批量任务与任务实例绑定,修改批量任务为执行超时,并将对应批量容器状态设置为false。
13.作为优选方案,还包括:当批量子应用拉起失败导致批量容器不可用时,通过定时任务扫描任务实例的批量容器,检查批量容器状态更新时间、批量容器状态信息,将异常状态批量容器的销毁命令发送至容器管理平台。
14.综上所述,本发明的有益效果包括:通过实时检查任务执行状态,对启动失败容器进行自动清理,解决了任务执行失败无法清理容器等现象,该调度系统能够实现企业级批量任务的调度控制、实现资源的集中应用,解决了在各类业务系统实现中呈现批量时间集中、批量执行过程中服务器资源使用过高、批量影响联机业务、批量执行结束后服务器资源未能有效利用的问题。
附图说明
15.参照附图来说明本发明的公开内容。应当了解,附图仅仅用于说明目的,而并非意
在对本发明的保护范围构成限制。在附图中,相同的附图标记用于指代相同的部件。其中:
16.图1为本发明实施例的基于分布式架构及容器化批量调度系统的结构示意图;
17.图2为本发明实施例的基于分布式架构及容器化批量调度方法的流程示意图;
18.图3为本发明实施例的基于分布式架构及容器化批量调度方法的另一形式流程示意图;
19.图4为本发明实施例的通过调度平台启动批量任务的流程示意图。
具体实施方式
20.容易理解,根据本发明的技术方案,在不变更本发明实质精神下,本领域的一般技术人员可以提出可相互替换的多种结构方式以及实现方式。因此,以下具体实施方式以及附图仅是对本发明的技术方案的示例性说明,而不应当视为本发明的全部或者视为对本发明技术方案的限定或限制。
21.根据本发明的一实施方式结合图1示出。一种基于分布式架构及容器化批量调度系统,包括容器管理平台、调度平台、镜像池和资源池,镜像池包括多个由业务子系统打包生成的批量镜像,如存款批量镜像、会计批量镜像、卡系统批量镜像等,资源池包括多个基于批量镜像创建的批量容器,如存款批量docker、会计批量docker、卡批量docker等。
22.本发明实施例中,上述容器管理平台用于根据任务执行指令生成相应的批量容器,并根据批量任务执行状态进行批量容器销毁操作。
23.上述调度平台用于配置业务系统的批量任务信息,制定批量任务与批量镜像和执行系统之间映射关系,向容器管理平台发送任务执行指令,及跟踪批量任务执行状态并反馈至容器管理平台。
24.其中,制定批量任务与批量镜像和执行系统之间映射关系,包括:将可用于部署的批量镜像id与调度平台的执行系统id和批量任务id进行绑定。如:批量镜像id为s_0001,对应的批量任务id为task_dataclean_mirror,对应的执行系统id为0001。
25.应理解,上述执行系统为用于执行批量任务的系统,执行系统包括若干台执行机器,执行机器即服务器。批量子应用属于允许在该执行机器的容器中运行的程序。
26.具体的,上述调度平台包括实例管理中心、分配控制器、指令生成器、状态收集器和生命周期管理器。
27.实例管理中心用于生成任务实例,设置任务实例状态、任务超时时间和任务并行状态。
28.分配控制器用于检查资源池负载,设置任务执行模板信息,将批量任务分配到任务实例。
29.指令生成器用于生成任务执行指令,任务执行指令包括批量镜像拉取信息和批量容器信息。
30.状态收集器用于接收经批量子应用执行的任务执行状态,批量子应用由批量容器拉起。
31.生命周期管理器用于接收并检查批量镜像下批量任务的执行状态,将检查结果发送至实例管理中心。
32.进一步的,上述调度平台还包括配置中心、定时任务工厂、监控告警中心、任务定
义中心。
33.配置中心用于进行系统配置信息,平台功能的启停用等。
34.定时任务工厂用于实现定时任务的自动生成、触发、分布式唯一性检查等。
35.监控告警中心用于实现对批量任务执行的监控、异常告警、执行耗时过长告警、执行同比环比、多维度执行监控分析等。
36.任务定义中心用于对任务执行信息进行配置,如任务执行时间、限制执行时间、并发、属性关系、执行绑定数据、数据分片机制、任务依赖关系、任务异常处理方式、告警规则等。
37.参见图2和3,本发明还提供了一种基于分布式架构及容器化批量调度方法,包括如下步骤:
38.s1,将业务系统批量任务的配置信息载入调度平台,并制定批量任务、批量镜像和执行系统之间映射关系。
39.其中,制定批量任务与批量镜像和执行系统之间映射关系,包括:将可用于部署的批量镜像id与调度平台的执行系统id和批量任务id进行绑定。如:批量镜像id为s_0001,对应的批量任务id为task_dataclean_mirror,对应的执行系统id为0001。
40.应理解,在步骤s1之前,还包括将业务子系统打包置于镜像池中,部署容器管理平台环境、安装docker开源的应用容器引擎,该容器管理平台为k8s容器集群管理系统。
41.s2,通过调度平台启动批量任务,根据配置信息调用容器管理平台向其发送任务执行指令。
42.上述调度平台包括实例管理中心、分配控制器、指令生成器、状态收集器和生命周期管理器。参见图4,步骤s2包括:
43.s201,通过实例管理中心启动批量任务,生成任务实例,并对任务实例状态、任务超时时间和任务并行状态进行检查。
44.具体为:生成任务实例,设置任务实例id为instance_id,查询数据库表检查执行实例池中是否存在该任务所属系统的执行实例。检查该批量任务所需镜像当前运行数量,若未超过最大并行数量,则设置任务实例状态running=1。若超过最大并行数量,则发送告警信息,提示相关负责人。设置任务超时时间max_time,设置任务并行状态parallelism,并行执行parallelism=1,非并行执行parallelism=0。若为高频任务,则检查是否有在运行实例。
45.s202,通过分配控制器检查资源池负载,将批量任务分配到任务实例。
46.检查资源池负载,设置任务执行模板资源target信息,该target信息包含任务映射的镜像id,执行目标服务器的ip地址端口等,用于生成执行指令及镜像拉取。分配完成后,执行物理服务器负载状态中将任务负载量 1。当批量任务为高频任务时,若有在运行实例,则设置资源绑定信息,将高频任务执行绑定到在运行实例上,避免高频率批量任务在执行过程中频繁拉起批量容器,提高执行效率。
47.s203,通过指令生成器生成任务执行指令,任务执行指令包括批量镜像拉取信息(mirrorinfo)和批量容器信息(dockerinfo)。
48.若不存在与任务实例相对应的批量容器,则调用容器管理平台,设置任务实例状态为新建(usetype=0)。任务实例状态表示执行该任务对应的实例的状态,表明需要分配
新的容器实例。若为任务实例为并行执行,则设置任务实例状态为并行执行(usetype=2),若已存在执行实例且为非并行执行parallelism=0时,跳过跳过步骤s3,将空闲容器与任务实例进行绑定,修改任务执行状态为资源分配结束(running=2),向指定任务实例发布命令。
49.s3,容器管理平台根据任务执行指令在镜像池中拉取批量镜像生成相应的批量容器。如:通过图1中的存款批量镜像生成存款批量docker。批量容器创建后返回容器实例id。将容器实例id与批量任务id绑定,将任务执行状态修改为资源分配结束(running=2)。
50.s4,批量容器启动后,拉起与批量容器对应的批量子应用,批量子应用执行批量任务,并实时反馈批量任务的执行状态至调度平台。
51.批量任务进入执行机器执行,拉起批量子应用,批量子应用启动成功后反馈执行状态,调度平台将任务执行状态修改为批量执行中(running=3),并持续更新任务执行状态。
52.在步骤s4中,实时反馈批量任务的执行状态至调度平台,包括:任务执行结束后,发送任务执行状态至状态收集器,修改任务执行状态为完成(running=4),再由状态收集器将任务执行状态转发至生命周期管理器,生命周期管理器检查批量镜像下是否存在需要执行的批量任务,以及检查批量任务是否需要持续执行。
53.若需要保留任务实例,则将任务实例状态设置为保留,否则为不保留,(needretain=true或false),并发送数据至实例管理中心。实例管理中心根据needretain状态进行处理,解除批量任务与任务实例的绑定,标记任务实例是否可复用,若不可复用,标记资源池中批量容器状态为待销毁(dockerstatus=3)。发送销毁命令至分配控制器,设置instance_id=null,
54.action=destroy。若批量任务执行结果为失败(running=5),则修改任务执行状态为失败,发送失败告警提示信息,检查任务执行失败配置是否支持续运行,支持则保留任务,若不支持则设置needretain=false,解除批量任务与批量容器绑定,标记资源池中批量容器状态为待销毁(dockerstatus=3),执行容器实例销毁。
55.s5,调度平台根据批量任务执行状态发起容器销毁命令,容器销毁命令由分配控制器发送至指令生成器,再转发至容器管理平台。
56.s6,容器管理平台根据容器销毁命令对批量容器进行销毁操作,保留执行结果至oss存储中心。
57.本发明实施例中,上述调度方法还包括:当任务执行状态为执行中,且执行时间超过第一预设时间,则发出告警通知,若执行执行时间超过第二预设时间,则解除批量任务与任务实例绑定,修改批量任务为执行超时,并将对应批量容器状态设置为false。
58.具体的,执行时间若超过12小时,则发出批量容器即将销毁警告,任务执行时间超时为预定义时间2倍以上且超过24小时,则解除任务执行实例绑定,修改任务为执行超时,将容器保留状态设置为false,发送命令至实例管理中心。
59.本发明实施例中,上述调度方法还包括:当批量子应用拉起失败导致批量容器不可用时,通过定时任务扫描任务实例的批量容器,检查批量容器状态更新时间、批量容器状态信息,将异常状态批量容器的销毁命令发送至容器管理平台。针对长时间未返回自身状态的批量容器,主动调用批量容器状态信息查询,更新批量容器的状态信息,若调用查询失
败,则启动顺延间隔累加的重试查询,执行maxretry=10次查询,每次查询间隔interval=timeout maxretry*60(s),若查询最终依然无结果,则发送告警信息,生成容器销毁命令,发送容器管理平台。
60.当分配控制器收到任务实例id为空,发送action=destroy的请求,根据容器实例id生成容器销毁命令,发送容器管理平台,执行容器销毁。销毁完成后返回执行状态,标记资源池中容器状态为已销毁(dockerstatus=4)。
61.综上所述,本发明的有益效果包括:通过实时检查任务执行状态,对启动失败容器进行自动清理,解决任务执行失败无法清理容器等现象,该调度系统能够实现企业级批量任务的调度控制、实现资源的集中应用,解决了在各类业务系统实现中呈现批量时间集中、批量执行过程中服务器资源使用过高、批量影响联机业务、批量执行结束后服务器资源未能有效利用的问题。
62.本发明的技术范围不仅仅局限于上述说明中的内容,本领域技术人员可以在不脱离本发明技术思想的前提下,对上述实施例进行多种变形和修改,而这些变形和修改均应当属于本发明的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献