多类型数据共享服务的执行方法与流程

文档序号:26849686发布日期:2021-10-09 01:31阅读:182来源:国知局
多类型数据共享服务的执行方法与流程

1.本发明涉及大数据技术领域,具体涉及一种多类型数据共享服务的执行方法。


背景技术:

2.目前的数据共享服务一般有两种,分别为针对数据源的数据共享服务和针对第三方接口的数据共享服务。但这两种类型的服务之间相互独立,在进行服务执行时,无法通过相互依赖的方式对结果进行计算、统计等,无法满足复杂场景的数据共享服务的需求。并且,目前也无法做到服务器资源的有效隔离,在系统请求激增或服务错误运行的情况下,容易导致服务器瘫痪,以致影响服务器上其他应用的正常运行。


技术实现要素:

3.本发明为解决上述技术问题,提供了一种多类型数据共享服务的执行方法,能够满足复杂场景下的数据共享服务的需求,并且能够实现内存及cpu的资源隔离,有效避免对服务器其他应用正常运行的影响,可支持应用宕机自动恢复。
4.本发明采用的技术方案如下:
5.一种多类型数据共享服务的执行方法,包括以下步骤:在前端进行多个节点的编排,并生成编排结果数据,其中,每一类型的数据共享服务作为一个节点,相邻节点之间具有依赖关系;在服务端对所述编排结果数据进行解析和校验,并生成分层执行链路数据;基于yarn(一种可为上层应用提供统一的资源管理和调度的资源管理器)启动执行引擎;用户调用所述执行引擎,所述执行引擎根据所述分层执行链路数据进行执行,并将执行结果返回给用户。
6.在前端进行多个节点的编排,并生成编排结果数据,具体包括:根据用户指令在前端页面生成流程画布,并自动添加start节点和end节点;将多种类型的数据共享服务作为节点拖入所述流程画布中,并将多种类型的数据共享服务对应的节点依序添加至所述start节点与所述end节点之间,以及设置各个节点的输入参数,构成编排流程图;将所述编排流程图转义为json字符串,作为所述编排结果数据,并将所述编排结果数据发送至服务端的解析和校验接口。
7.在服务端对所述编排结果数据进行解析和校验,并生成分层执行链路数据,具体包括:从所述编排结果数据中解析出节点配置和节点连线配置;将所述节点配置和节点连线配置重组成执行流程树;通过深度优先搜索遍历整棵执行流程树,校验是否有向无环、start节点和end节点的位置;在校验通过后,将所述执行流程树转换为分层执行链路的json字符串。
8.基于yarn启动执行引擎,具体包括:应用启动时检查并上传执行引擎lib包到hdfs上;通过yarnclient提交执行引擎到yarn上运行;resourcemanager启动applicationmaster,由applicationmaster向resourcemanager申请资源;applicationmaster申请到资源后,在nodemanager的container中启动执行引擎;执行引擎
启动后,将多种类型的数据共享服务的节点ip和服务端口号上传hdfs;应用定时查询hdfs上存储的执行引擎服务列表,以提供给用户调用。
9.所述执行引擎根据所述分层执行链路数据进行执行,并将执行结果返回给用户,具体包括:获取第一层中的start节点,根据节点的输入参数从数据共享服务的节点的输入参数中获取对应的值,以json格式存储到缓存中;获取第二层中的节点,根据节点输入参数设置的上游节点和jsonpath,获取对应节点结果集中的特定值作为该节点输入参数的值;判断节点对应的数据共享服务类型,提交到线程池中运行,同一层的节点并行运行,运行结束,将结果集以json格式存储到缓存中;逐层执行完毕后,将最终的执行结果返回给用户。
10.本发明的有益效果:
11.本发明通过对多种类型的数据共享服务进行编排,使得不同类型的数据共享服务之间形成依赖关系,能够满足复杂场景下的数据共享服务的需求,并且,执行引擎基于yarn运行,能够实现内存及cpu的资源隔离,有效避免对服务器其他应用正常运行的影响,可支持应用宕机自动恢复。
附图说明
12.图1为本发明实施例的多类型数据共享服务的执行方法的流程图;
13.图2为本发明一个实施例的节点编排的流程图;
14.图3为本发明一个实施例的前端节点编排页面示意图;
15.图4为本发明一个实施例的生成分层执行链路数据的流程图;
16.图5为本发明一个实施例的基于yarn启动执行引擎的流程图;
17.图6为本发明一个实施例的执行引擎执行服务的流程图。
具体实施方式
18.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
19.如图1所示,本发明实施例的多类型数据共享服务的执行方法包括以下步骤:
20.s1,在前端进行多个节点的编排,并生成编排结果数据,其中,每一类型的数据共享服务作为一个节点,相邻节点之间具有依赖关系。
21.s2,在服务端对编排结果数据进行解析和校验,并生成分层执行链路数据。
22.s3,基于yarn启动执行引擎。
23.s4,用户调用执行引擎,执行引擎根据分层执行链路数据进行执行,并将执行结果返回给用户。
24.步骤s1所涉及的语言为typescript和react。如图2所示,步骤s1具体包括如下步骤:
25.s101,根据用户指令在前端页面生成流程画布,并自动添加start节点和end节点。
26.用户可通过点击创建服务编排按钮,由前端页面生成流程画布,本发明一个实施例的前端节点编排页面如图3所示。
27.s102,将多种类型的数据共享服务作为节点拖入流程画布中,并将多种类型的数据共享服务对应的节点依序添加至start节点与end节点之间,以及设置各个节点的输入参数,构成编排流程图。
28.本发明以多种类型的数据共享服务包括第一类型的数据共享服务和第二类型的数据共享服务为例。在步骤s101之后,可设置start节点的输入参数,在将第一类型的数据共享服务api1和第二类型的数据共享服务api2拖入流程画布后,可通过连线的方式对上下游节点进行链接,添加下游节点的输入参数,并设置各输入参数所对应的上游节点结果集中的值。在依次设置完多种类型的数据共享服务的节点后,将最后一个类型的数据共享服务的节点与end节点相连。由此,不同节点之间形成了上下游关系,且上游节点的输出结果可以作为下游节点的输入值。
29.s103,将编排流程图转义为json字符串,作为编排结果数据,并将编排结果数据发送至服务端的解析和校验接口。
30.在本发明的一个具体实施例中,编排流程图转义得到的json字符串如下:
31.32.33.34.35.[0036][0037]
步骤s2所涉及的语言为java。如图4所示,步骤s2具体包括如下步骤:
[0038]
s201,从编排结果数据中解析出节点配置和节点连线配置。
[0039]
s202,将节点配置和节点连线配置重组成执行流程树。
[0040]
s203,通过深度优先搜索遍历整棵执行流程树,校验是否有向无环、start节点和end节点的位置。
[0041]
s204,在校验通过后,将执行流程树转换为分层执行链路的json字符串。
[0042]
在本发明的一个具体实施例中,分层执行链路的json字符串如下:
[0043]
[0044]
[0045][0046]
步骤s3基于yarn启动执行引擎,提交执行引擎任务至yarn上做高可用部署,启动后上传服务信息至hdfs,方便应用获取执行引擎服务列表。步骤s3所涉及的语言为java。如图5所示,步骤s3具体包括如下步骤:
[0047]
s301,应用启动时检查并上传执行引擎lib包到hdfs上。
[0048]
路径为:hdfs://ns1/opt/dtstack/api/gateway/gateway.jar。
[0049]
s302,通过yarnclient提交执行引擎到yarn上运行。
[0050]
可设置任务资源为2核2048m,启动命令为:${java_home}/bin/java

cpgateway.jar

xms${minworkermemory}

xmx${maxworkermemory}com.dtstack.api.gateway.apigatewaymain。
[0051]
s303,resourcemanager启动applicationmaster,由applicationmaster向resourcemanager申请资源。
[0052]
s304,applicationmaster申请到资源后,在nodemanager的container中启动执行引擎。
[0053]
s305,执行引擎启动后,将多种类型的数据共享服务的节点ip和服务端口号上传hdfs。
[0054]
路径为:hdfs://ns1/opt/dtstack/api/gateway/staging/${applicationid}_${containerid}.out。
[0055]
s306,应用定时查询hdfs上存储的执行引擎服务列表,以提供给用户调用。
[0056]
步骤s4所涉及的语言为java。如图6所示,步骤s4具体包括如下步骤:
[0057]
s401,获取第一层中的start节点,根据节点的输入参数从数据共享服务的节点的输入参数中获取对应的值,以json格式存储到缓存中。
[0058]
s402,获取第二层中的节点,根据节点输入参数设置的上游节点和jsonpath,获取对应节点结果集中的特定值作为该节点输入参数的值。
[0059]
s403,判断节点对应的数据共享服务类型,提交到线程池中运行,同一层的节点并行运行,运行结束,将结果集以json格式存储到缓存中。
[0060]
s401,逐层执行完毕后,将最终的执行结果返回给用户。
[0061]
根据本发明实施例的多类型数据共享服务的执行方法,通过对多种类型的数据共享服务进行编排,使得不同类型的数据共享服务之间形成依赖关系,能够满足复杂场景下的数据共享服务的需求,并且,执行引擎基于yarn运行,能够实现内存及cpu的资源隔离,有效避免对服务器其他应用正常运行的影响,可支持应用宕机自动恢复。
[0062]
在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0063]
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0064]
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
[0065]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0066]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
[0067]
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装
置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0068]
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0069]
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0070]
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0071]
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1