CN111221550B - 用于流式计算的规则更新方法、装置及流式计算系统 - Google Patents

用于流式计算的规则更新方法、装置及流式计算系统 Download PDF

Info

Publication number
CN111221550B
CN111221550B CN201911018140.0A CN201911018140A CN111221550B CN 111221550 B CN111221550 B CN 111221550B CN 201911018140 A CN201911018140 A CN 201911018140A CN 111221550 B CN111221550 B CN 111221550B
Authority
CN
China
Prior art keywords
rule
executor
task
list data
updating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911018140.0A
Other languages
English (en)
Other versions
CN111221550A (zh
Inventor
邬浩艳
尹攀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN201911018140.0A priority Critical patent/CN111221550B/zh
Publication of CN111221550A publication Critical patent/CN111221550A/zh
Application granted granted Critical
Publication of CN111221550B publication Critical patent/CN111221550B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书的实施例提供用于流式计算的规则更新方法、装置及流式计算系统。该流式计算系统包括规则配置平台、规则管理器、分布式文件服务器、任务调度器、资源管理器和至少一个任务执行器节点。任务调度器定期向规则管理器发送增量更新规则查询请求。规则管理器响应于增量更新规则查询请求而从规则配置平台获取规则列表数据。任务调度器使用规则列表数据中的文件存储路径地址,获取进入上线状态的增量更新业务规则的可执行文件。任务调度器基于增量更新业务规则的可执行文件构建规则执行器实例,并将所构建的规则执行器实例广播给各个任务执行器节点以进行规则执行器更新。各个任务执行器节点使用更新后的规则执行器来运行后续任务。

Description

用于流式计算的规则更新方法、装置及流式计算系统
技术领域
本说明书的实施例通常涉及流式计算领域,更具体地,涉及用于流式计算的规则更新方法、装置及流式计算系统。
背景技术
流式计算系统(例如,流式实时分布式计算)被广泛地应用于在线和近线海量数据处理。现有的流式计算系统(也可以称为流式计算框架),比如storm、spark streaming、flink等,都是在服务启动时已经编排好数据的处理逻辑算法(即,业务规则),并且不能进行动态更新。如果想要更新处理逻辑算法,则需要重新部署重启服务后才能生效。然而,许多安全应用场景要求能够7/24小时实时监测威胁,并且针对多变的风险形势提供应对措施。由此,如何能够在不停止服务的情况下进行业务规则快速更新是亟待解决的问题。
发明内容
鉴于上述问题,本说明书的实施例提供了一种用于流式计算的规则更新方法、装置、流式计算引擎及系统。利用该方法及系统,能够在不停止服务的情况下实现业务规则的快速更新。
根据本说明书的实施例的一个方面,提供了一种用于流式计算的规则更新方法,所述规则更新方法由流式计算引擎中的任务调度器执行,所述规则更新方法包括:获取进入上线状态的增量更新业务规则的可执行文件,所述可执行文件是对所述增量更新业务规则进行编译打包后生成的;基于所述增量更新业务规则的可执行文件构建规则执行器实例;以及将所构建的规则执行器实例广播给所述流式计算引擎中的各个任务执行器节点以进行规则执行器更新,所述各个任务执行器节点使用更新后的规则执行器来运行任务。
可选地,在上述方面的一个示例中,获取进入上线状态的增量更新业务规则的可执行文件可以包括:从规则管理器获取进入上线状态的增量更新业务规则的规则列表数据,所述规则列表数据包括所述增量更新业务规则的可执行文件在分布式文件服务器中的文件存储路径地址;以及根据所述文件存储路径地址来从所述分布式文件服务器中下载所述增量更新业务规则的可执行文件。
可选地,在上述方面的一个示例中,从规则管理器获取所述增量更新业务规则的规则列表数据可以包括:向规则管理器定期发送规则列表数据获取请求,所述规则列表数据获取请求用于获取进入上线状态的增量更新业务规则的规则列表数据;以及从所述规则管理器接收响应于所述规则列表数据获取请求而获取的规则列表数据。
可选地,在上述方面的一个示例中,所述增量更新业务规则是基于业务规则配置数据生成的业务规则脚本文件,以及基于所述增量更新业务规则的可执行文件构建规则执行器实例可以包括:将所述增量更新业务规则的可执行文件加载到虚拟机中来构建规则执行器实例。
可选地,在上述方面的一个示例中,所述规则列表数据可以是通过所述规则管理器响应于所述规则列表数据获取请求查询规则配置平台而获取的。
可选地,在上述方面的一个示例中,所述上线状态包括试运行、灰度发布和正式运行,其中,在所述上线状态是试运行或灰度发布时,在各个任务执行器节点处创建试运行规则缓存或灰度发布规则缓存,所构建的规则执行器实例被存储在试运行规则缓存或灰度发布规则缓存中,在所述上线状态是正式运行时,所构建的规则执行器实例被使用来更新各个任务执行器节点处的规则仓储。
可选地,在上述方面的一个示例中,所述增量更新业务规则是在可视化规则配置平台处基于业务指标配置的,所述业务指标是基于业务规则代码逻辑抽象出的。
根据本说明书的实施例的另一方面,提供一种用于流式计算的规则更新装置,所述规则更新装置应用于流式计算引擎中的任务调度器,所述规则更新装置包括:文件获取单元,获取进入上线状态的增量更新业务规则的可执行文件,所述可执行文件是对所述增量更新业务规则进行编译打包后生成的;执行器实例构建单元,基于所述增量更新业务规则的可执行文件构建规则执行器实例;以及执行器实例广播单元,将所构建的规则执行器实例广播给所述流式计算引擎中的各个任务执行器节点以进行规则执行器更新,所述各个任务执行器节点使用更新后的规则执行器来运行任务。
可选地,在上述方面的一个示例中,所述可执行文件获取单元可以包括:规则列表数据获取模块,从规则管理器获取进入上线状态的增量更新业务规则的规则列表数据,所述规则列表数据包括所述增量更新业务规则的可执行文件在分布式文件服务器中的文件存储路径地址;以及文件下载模块,根据所述文件存储路径地址来从所述分布式文件服务器中下载所述增量更新业务规则的可执行文件。
可选地,在上述方面的一个示例中,所述规则列表数据模块向规则管理器定期发送规则列表数据获取请求,所述规则列表数据获取请求用于获取进入上线状态的增量更新业务规则的规则列表数据;以及从所述规则管理器接收响应于所述规则列表数据获取请求而获取的规则列表数据。
可选地,在上述方面的一个示例中,所述规则列表数据是通过所述规则管理器响应于所述规则列表数据获取请求查询规则配置平台而获取的。
根据本说明书的实施例的另一方面,提供一种流式计算引擎,包括:任务调度器,包括如上所述的用于流式计算的规则更新装置,用于进行任务调度以及流式计算中的规则更新;资源管理器,响应于所述任务调度器的资源申请请求,为所述任务调度器所调度的任务分配资源,并将所分配的资源分发给对应的任务执行器;以及至少一个任务执行器节点,使用所述资源管理器分配的资源来基于本地规则仓储中的规则执行器实例运行所述任务调度器所调度的任务。
根据本说明书的实施例的另一方面,提供一种流式计算系统,包括:规则配置平台;规则管理器;分布式文件系统;以及如上所述的流式计算引擎。
根据本说明书的实施例的另一方面,提供一种电子设备,包括:一个或多个处理器,以及与所述一个或多个处理器耦合的存储器,所述存储器存储指令,当所述指令被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如上所述的用于流式计算的规则更新方法。
根据本说明书实施例的另一方面,提供一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如上所述的用于流式计算的规则更新方法。
附图说明
通过参照下面的附图,可以实现对于本说明书的实施例内容的本质和优点的进一步理解。在附图中,类似组件或特征可以具有相同的附图标记。
图1示出了根据本说明书的实施例的流式计算系统的方框图;
图2示出了根据本说明书的实施例的任务调度器的方框图;
图3示出了根据本说明书的实施例的用于流式计算的规则更新方法的流程图;
图4示出了根据本说明书的实施例的文件系统单元的一个实现示例的方框图;
图5示出了根据本说明书的实施例的业务规则生命周期状态流转图;
图6示出了根据本说明书的实施例的流式计算过程的一个示例的整体流程示意图;
图7示出了根据本说明书的实施例的用于实现流式计算中的业务规则更新过程的电子设备的方框图。
具体实施方式
现在将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本说明书的实施例内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。例如,所描述的方法可以按照与所描述的顺序不同的顺序来执行,以及各个步骤可以被添加、省略或者组合。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
在现有的流式计算框架实现方案中,流式计算框架代码与业务逻辑代码耦合在一起硬编码到程序代码里,然后程序代码编写完成后,对程序代码进行打包,然后发布到流式计算平台进行部署发布。在这种情况下,一旦业务逻辑(即,业务规则)发生变化,则需要手工重新修改代码逻辑打包,同时停止原有的流式计算任务,然后上传新的程序包,之后再次启动任务来运行。如果业务逻辑修改存在问题,则需要重复上述步骤。在当前瞬息万变的互联网环境下,业务处理逻辑变化频繁,这种通过手工修改代码然后重启发布的处理方式在时效性上存在很大的滞后性。此外,这种处理方式缺少灰度验证保障机制,在程序修改完成后直接替换发布,很容易出现由于程序代码BUG而导致的线上故障,存在很大稳定性风险。
鉴于上述,本说明书的实施例提供一种规则更新方案。在该方案中,在规则配置平台上输入规则配置数据来进行业务规则增量更新,并且在一键发布实时生效后,规则管理器基于所输入的规则配置数据生成增量更新业务规则并进行编译以得到增量更新业务规则的可执行文件。任务调度器使用定期问询机制来经由规则管理器获取增量更新业务规则的可执行文件,并且在获取到增量更新业务规则的可执行文件后,基于该可执行文件构建规则执行器实例,然后将所构建的规则执行器实例广播给各个任务执行器节点,以供各个任务执行器节点来使用所构建的规则执行器示例运行后续任务。按照这种方式,业务规则的增量更新以及业务规则的执行被解耦在不同的主体中实现,从而能够在不停止服务的情况下实现业务规则的快速更新。
下面将结合附图来详细描述根据本说明书的实施例的用于流式计算的规则更新方法及装置。
图1示出了根据本说明书的实施例的流式计算系统100的方框图。如图1所示,流式计算100包括规则配置平台110、规则管理器120、分布式文件服务器130和流式计算引擎。流式计算引擎包括任务调度器140、资源管理器150和至少一个任务执行器节点160。
规则配置平台110被配置为供用户(例如,业务运营人员等)进行业务规则更新,比如,增加、修改或删除业务规则。在本说明书中,规则配置平台110可以是可视化规则配置平台,比如,具有显示屏幕的终端设备或服务器。在工作时,响应于用户发出的业务规则更新请求,在显示屏幕上呈现规则配置界面。用户在规则配置界面上输入规则配置数据。例如,用户可以通过在规则配置界面上选择业务指标来组装规则配置数据。这里,所述业务指标可以是基于业务规则代码逻辑抽象出的,并且所抽象出的业务指标是用户(例如,业务运营人员)可理解的,由此使得用户能够在无需了解代码编写逻辑的情况下编写规则配置数据,从而降低规则配置数据编写难度。
在用户提交规则配置数据后,例如,用户通过规则配置平台110则配置数据并保存后,用户就完成了规则增量更新操作。如果该增量更新规则的规则状态进入上线状态,例如,试运行、灰度发布或正式运行,则在规则配置平台110处,会根据预定义的规则模板生成规则文件,例如,规则脚本(JAVA)文件,并且对规则文件进行编译打包以生成增量更新规则的可执行文件,例如,对规则JAVA文件进行编译打包后生成规则jar文件。在本说明书的一个示例中,所生成的可执行文件(例如,规则jar文件)可以保存在规则配置平台110处或者上传保存在规则管理器120中。在另一示例中,所生成的可执行文件也可以被规则配置平台110上传到分布式文件服务器130中,并且分布式文件服务器130向规则配置平台110返回可执行文件的文件存储路径地址。在接收到文件存储路径地址后,规则配置平台110将该文件存储路径地址保存到该增量更新规则的规则基本信息中。
规则管理器120被配置为对业务规则进行管理,例如,负责对外服务接口的统一管理。规则管理器120例如提供统一的rest服务API供其它设备(例如,任务调度器)调用。
在一个示例中,规则管理器120被配置为在接收到任务调度器140发送的增量更新业务规则查询请求后,向规则配置平台110发送增量更新业务规则查询请求,以用于查询规则配置平台110处是否存在进入上线状态的增量更新规则。响应于存在进入上线状态的增量更新规则,规则配置平台110向规则管理器120返回规则列表数据,该规则列表数据包括增量更新规则的可执行文件在分布式文件服务器中的文件存储路径地址。然而,规则管理器120向任务调度器140发送所获取的规则列表数据。
任务调度器140被配置为进行任务调度以及流式计算中的规则更新。在本说明书中,除了任务调度的基本功能组件之外,任务调度器140还可以包括规则更新装置141。规则更新装置141被配置为定期地向规则管理器120发送增量更新业务规则查询请求,以查询是否存在进入上线状态的增量更新业务规则,并且响应于存在进入上线状态的增量更新业务规则来进行业务规则更新,并将更新后的规则执行器实例广播给至少一个任务执行器节点。规则更新装置141的结构和操作将在下面参照图2-图4进行说明。
资源管理器150被配置为响应于任务调度器140的资源申请请求,为任务调度器140所调度的任务分配资源,并将所分配的资源分发给对应的任务执行器节点。
任务执行器节点160被配置为使用资源管理器150分配的资源来基于本地规则仓储中的规则执行器实例运行所述任务调度器所调度的任务。此外,要说明的是,在接收到任务调度器140发送的更新后的规则执行器后,任务执行器节点160会利用所接收的规则执行器来进行更新,并且使用更新后的规则执行器来运行后续任务,由此实现业务规则的动态更新。这里,任务执行器节点160是分布式任务执行器节点160。流式计算引擎中可以包括多个任务执行器节点160。
例如,在增量更新业务规则的上线状态是试运行或灰度发布时,在接收到任务调度器140发送的更新后的规则执行器后,任务执行器节点160创建试运行规则缓存或灰度发布规则缓存,并且将所接收的规则执行器实例存储在试运行规则缓存或灰度发布规则缓存中,以用于后续的业务规则试运行或者灰度测试。这里,规则试运行就是规则运行结果不参与业务决策判断,只是将规则运行结果保存下来,以用于后续的规则稽核量统计监控。规则灰度发布就是指规则上线时开启少量流量(例如,按照预定百分比),观察业务监控的波动影响,然后逐步扩大切流比例的方式,降低直接全量发布带来的风险。在增量更新业务规则的上线状态是正式运行时,所接收的规则执行器实例被使用来更新各个任务执行器节点处的规则仓储,以用于执行后续任务。
此外,可选地,规则配置平台110和规则管理器120可以被实现为同一组件或同一应用的两个模块。
图2示出了根据本说明书的实施例的任务调度器140的方框图。如图2所示,任务调度器140包括规则更新装置141。规则更新装置141包括文件获取单元142、执行器实例构建单元144和执行器实例广播单元146。
文件获取单元142被配置为获取进入上线状态的增量更新业务规则的可执行文件。在一个示例中,增量更新业务规则的可执行文件可以被保存在规则管理器120或规则配置平台110中,相应地,文件获取单元142可以被配置为从规则管理器120或规则配置平台100获取进入上线状态的增量更新业务规则的可执行文件。
在另一示例中,增量更新业务规则的可执行文件可以被保存在分布式文件服务器130中,相应地,文件获取单元可以包括规则列表数据获取模块147和文件下载模块148,如图4所示。
规则列表数据获取模块147被配置为从规则管理器120获取进入上线状态的增量更新业务规则的规则列表数据,所述规则列表数据包括增量更新业务规则的可执行文件在分布式文件服务器130中的文件存储路径地址。例如,规则列表数据模块147可以向规则管理器120定期发送规则列表数据获取请求,所述规则列表数据获取请求用于获取进入上线状态的增量更新业务规则的规则列表数据。在接收到规则列表数据获取请求后,规则管理器120查询规则配置平台110而获取规则列表数据,并将所获取的规则列表数据返回给规则列表数据模块147。
文件下载模块148被配置为根据文件存储路径地址来从分布式文件服务器130中下载所述增量更新业务规则的可执行文件。
执行器实例构建单元144被配置为基于增量更新业务规则的可执行文件构建规则执行器实例。例如,在增量更新业务规则的可执行文件是基于业务规则配置数据生成的业务规则脚本文件时,执行器实例构建单元144将增量更新业务规则的可执行文件加载到虚拟机(例如,JV虚拟机)中来构建规则执行器实例。所构建的规则执行器实例被存放在任务调度器140的规则仓储缓存中。
执行器实例广播单元146被配置为将所构建的规则执行器实例广播给流式计算引擎中的各个任务执行器节点160以进行规则执行器更新,各个任务执行器节点160使用更新后的规则执行器来运行任务。
图3示出了根据本说明书的实施例的用于流式计算的规则更新方法300的流程图。
如图3所示,在301,在接收到用户发起的规则增量更新请求后,在301,在规则配置平台110的显示屏幕上呈现规则配置界面,用户经由规则配置界面来提供规则配置数据以进行规则增量更新。
在增量更新规则的规则状态进入上线状态(例如,试运行、灰度发布和正式运行)后,在302,在规则配置平台110处,基于所提供的规则配置数据来生成业务规则的可执行文件。所述可执行文件是对增量更新业务规则进行编译打包后生成的。例如,在进入上线状态后,可以在规则配置平台110处,根据预定义的规则模板生成规则文件,例如,规则脚本(JAVA)文件,并且对规则文件进行编译打包以生成增量更新规则的可执行文件,例如,对规则JAVA文件进行编译打包后生成规则jar文件。
接着,在303,规则配置平台110将所生成的可执行文件上传到分布式文件服务器130中。在304,分布式文件服务器130对所接收的可执行文件进行存储,并且在305,向规则配置平台110返回可执行文件的文件存储路径地址。在接收到文件存储路径地址后,规则配置平台110将该文件存储路径地址保存到该增量更新规则的规则基本信息中。
要说明的是,在本说明书的另一示例中,所生成的可执行文件(例如,规则jar文件)也可以保存在规则配置平台110处或者上传保存在规则管理器120中。
此外,301到305处的操作是增量更新业务规则的生成过程,该过程与任务调度器140处执行的流式计算过程中的业务规则更新过程相互独立。
在306,任务调度器140定期向规则管理器120发送规则更新查询请求。在接收到规则更新查询请求后,在307,规则管理器120向规则配置平台110发送规则列表数据获取请求,以用于获取进入上线状态的增量更新业务规则的规则列表数据,所述规则列表数据包括增量更新业务规则的可执行文件在分布式文件服务器130中的文件存储路径地址。
响应于规则列表数据获取请求,在308,规则配置平台110向规则管理器120返回规则列表数据。接着,在309,规则管理器120将规则列表数据返回给任务调度器140。
在接收到规则列表数据后,在310,任务调度器140根据文件存储路径地址来从分布式文件服务器130下载增量更新业务规则的可执行文件。要说明的是,在所生成的可执行文件保存在规则配置平台110或者规则管理器120中的情况下,任务调度器140可以从规则配置平台110或规则管理器120获取增量更新业务规则的可执行文件。
然后,在311,基于增量更新业务规则的可执行文件来构建规则执行器实例。例如,在增量更新业务规则的可执行文件是基于业务规则配置数据生成的业务规则脚本文件时,执行器实例构建单元144将增量更新业务规则的可执行文件加载到虚拟机(例如,JV虚拟机)中来构建规则执行器实例。所构建的规则执行器实例被存放在任务调度器140的规则仓储缓存中。
接着,在312,任务调度器140将所构建的规则执行器实例广播给流式计算引擎中的各个任务执行器节点160。在接收到规则执行器实例后,在313,各个任务执行器节点使用所接收的规则执行器实例来进行规则仓储更新,并且使用更新后的规则执行器实例来运行后续任务。
要说明的是,在本说明书的另一示例中,规则配置平台110和规则管理器120可以被实现为同一组件或同一应用的两个模块。在这种情况下,可以不需要图3中示出的流程中的307和308的操作。
图5示出了根据本说明书的实施例的业务规则生命周期状态流转图。如图5所示,业务规则生命周期可以包括草稿撰写,审核,试运行、灰度发布和正式运行。其中,草稿撰写和审核是管理时状态,这两个状态的业务规则不会被加载到任务调度器和任务执行器节点的规则仓储中。试运行、灰度发布和正式运行是运行时状态(即,上线状态),这三个状态的业务规则会被加载到任务调度器和任务执行器节点的规则仓储中。
图6示出了根据本说明书的实施例的流式计算过程的一个示例的整体流程示意图。
在用户在规则配置平台110中完成规则配置数据提交后,基于所提供的规则配置数据来生成业务规则的可执行文件,并将所生成的可执行文件上传到分布式文件服务器130中进行存储,并且分布式文件服务器130向规则配置平台110返回可执行文件的文件存储路径地址(610)。在接收到文件存储路径地址后,规则配置平台110将该文件存储路径地址保存到该增量更新规则的规则基本信息中。
在620,任务调度器140定期向规则管理器120发送规则更新查询请求。在接收到规则更新查询请求后,在620,规则管理器120向规则配置平台110发送规则列表数据获取请求,以用于获取进入上线状态的增量更新业务规则的规则列表数据,响应于规则列表数据获取请求,规则配置平台110向规则管理器120返回规则列表数据。
接着,在640,规则管理器120将规则列表数据返回给任务调度器140。在接收到规则列表数据后,在650,任务调度器140根据文件存储路径地址来从分布式文件服务器130下载增量更新业务规则的可执行文件。然后,基于增量更新业务规则的可执行文件来构建规则执行器实例。所构建的规则执行器实例被存放在任务调度器140的规则仓储缓存中。
接着,在660,任务调度器140向资源管理器150发送资源申请请求,以用于请求各个任务运行所需资源。在接收资源申请请求后,在670,资源管理器150将所分配的资源分发给对应的任务执行器节点160。
此外,在680,任务调度器140将所构建的规则执行器实例广播给流式计算引擎中的各个任务执行器节点160。在接收到规则执行器实例后,在各个任务执行器节点使用所接收的规则执行器实例来进行规则仓储更新,并且使用更新后的规则执行器实例来运行后续任务。
如上参照图1到图6,对根据本说明书的实施例的用于流式计算的规则更新方法及规则更新装置的实施例进行了描述。上面的规则更新装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。
图7示出了根据本说明书的实施例的用于实现流式计算中的业务规则更新的电子设备700的结构框图。
如图7所示,电子设备700可以包括至少一个处理器710、存储器(例如,非易失性存储器)720、内存730、通信接口740以及内部总线760,并且至少一个处理器710、存储器720、内存730和通信接口740经由总线760连接在一起。该至少一个处理器710执行在计算机可读存储介质中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
在本说明书的实施例中,电子设备700可以包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、个人数字助理(PDA)、手持装置、可佩戴计算设备、消费电子设备等等。
在一个实施例中,在存储器中存储有计算机可执行指令,其当执行时使得至少一个处理器710:获取进入上线状态的增量更新业务规则的可执行文件,所述可执行文件是对所述增量更新业务规则进行编译后生成的;基于所述增量更新业务规则的可执行文件构建规则执行器实例;以及将所构建的规则执行器实例广播给所述流式计算引擎中的各个任务执行器节点以进行规则执行器更新,所述各个任务执行器节点使用更新后的规则执行器来运行任务。
应该理解的是,在存储器中存储的计算机可执行指令当执行时使得至少一个处理器710执行在本说明书的各个实施例中如上结合图1-6描述的各种操作和功能。
根据一个实施例,提供了一种例如非暂时性机器可读介质的程序产品。非暂时性机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中如上结合图1-6描述的各种操作和功能。
具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD-RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
本领域技术人员应当理解,上面公开的各个实施例可以在不偏离发明实质的情况下做出各种变形和修改。因此,本发明的保护范围应当由所附的权利要求书来限定。
需要说明的是,上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上各实施例中,硬件单元或模块可以通过机械方式或电气方式实现。例如,一个硬件单元、模块或处理器可以包括永久性专用的电路或逻辑(如专门的处理器,FPGA或ASIC)来完成相应操作。硬件单元或处理器还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
上面结合附图阐述的具体实施方式描述了示例性实施例,但并不表示可以实现的或者落入权利要求书的保护范围的所有实施例。在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。

Claims (13)

1.一种用于流式计算的规则更新方法,所述规则更新方法由流式计算引擎中的任务调度器执行,所述规则更新方法包括:
获取进入上线状态的增量更新业务规则的可执行文件,所述可执行文件是对所述增量更新业务规则进行编译打包后生成的,其中,所述增量更新业务规则是在可视化规则配置平台处基于业务指标配置的,所述业务指标是基于业务规则代码逻辑抽象出的,所述上线状态包括试运行、灰度发布和正式运行;
基于所述增量更新业务规则的可执行文件构建规则执行器实例;以及
将所构建的规则执行器实例广播给所述流式计算引擎中的各个任务执行器节点以进行规则执行器更新,所述各个任务执行器节点使用更新后的规则执行器来运行任务;
其中,在所述上线状态是试运行或灰度发布时,在各个任务执行器节点处创建试运行规则缓存或灰度发布规则缓存,所构建的规则执行器实例被存储在试运行规则缓存或灰度发布规则缓存中,
在所述上线状态是正式运行时,所构建的规则执行器实例被使用来更新各个任务执行器节点处的规则仓储。
2.如权利要求1所述的规则更新方法,其中,获取进入上线状态的增量更新业务规则的可执行文件包括:
从规则管理器获取进入上线状态的增量更新业务规则的规则列表数据,所述规则列表数据包括所述增量更新业务规则的可执行文件在分布式文件服务器中的文件存储路径地址;以及
根据所述文件存储路径地址来从所述分布式文件服务器中下载所述增量更新业务规则的可执行文件。
3.如权利要求2所述的规则更新方法,其中,从规则管理器获取所述增量更新业务规则的规则列表数据包括:
向规则管理器定期发送规则列表数据获取请求,所述规则列表数据获取请求用于获取进入上线状态的增量更新业务规则的规则列表数据;以及
从所述规则管理器接收响应于所述规则列表数据获取请求而获取的规则列表数据。
4.如权利要求1所述的规则更新方法,其中,所述增量更新业务规则是基于业务规则配置数据生成的业务规则脚本文件,以及
基于所述增量更新业务规则的可执行文件构建规则执行器实例包括:
将所述增量更新业务规则的可执行文件加载到虚拟机中来构建规则执行器实例。
5.如权利要求3所述的规则更新方法,其中,所述规则列表数据是通过所述规则管理器响应于所述规则列表数据获取请求查询规则配置平台而获取的。
6.一种用于流式计算的规则更新装置,所述规则更新装置应用于流式计算引擎中的任务调度器,所述规则更新装置包括:
文件获取单元,获取进入上线状态的增量更新业务规则的可执行文件,所述可执行文件是对所述增量更新业务规则进行编译打包后生成的,其中,所述增量更新业务规则是在可视化规则配置平台处基于业务指标配置的,所述业务指标是基于业务规则代码逻辑抽象出的,所述上线状态包括试运行、灰度发布和正式运行;
执行器实例构建单元,基于所述增量更新业务规则的可执行文件构建规则执行器实例;以及
执行器实例广播单元,将所构建的规则执行器实例广播给所述流式计算引擎中的各个任务执行器节点以进行规则执行器更新,所述各个任务执行器节点使用更新后的规则执行器来运行任务;
其中,在所述上线状态是试运行或灰度发布时,在各个任务执行器节点处创建试运行规则缓存或灰度发布规则缓存,所构建的规则执行器实例被存储在试运行规则缓存或灰度发布规则缓存中,
在所述上线状态是正式运行时,所构建的规则执行器实例被使用来更新各个任务执行器节点处的规则仓储。
7.如权利要求6所述的规则更新装置,其中,所述可执行文件获取单元包括:
规则列表数据获取模块,从规则管理器获取进入上线状态的增量更新业务规则的规则列表数据,所述规则列表数据包括所述增量更新业务规则的可执行文件在分布式文件服务器中的文件存储路径地址;以及
文件下载模块,根据所述文件存储路径地址来从所述分布式文件服务器中下载所述增量更新业务规则的可执行文件。
8.如权利要求7所述的规则更新装置,其中,所述规则列表数据模块:
向规则管理器定期发送规则列表数据获取请求,所述规则列表数据获取请求用于获取进入上线状态的增量更新业务规则的规则列表数据;以及
从所述规则管理器接收响应于所述规则列表数据获取请求而获取的规则列表数据。
9.如权利要求8所述的规则更新装置,其中,所述规则列表数据是通过所述规则管理器响应于所述规则列表数据获取请求查询规则配置平台而获取的。
10.一种流式计算引擎,包括:
任务调度器,包括如权利要求6到9中任一所述的规则更新装置,用于进行任务调度以及流式计算中的规则更新;
资源管理器,响应于所述任务调度器的资源申请请求,为所述任务调度器所调度的任务分配资源,并将所分配的资源分发给对应的任务执行器;以及
至少一个任务执行器节点,使用所述资源管理器分配的资源来基于本地规则仓储中的规则执行器实例运行所述任务调度器所调度的任务。
11.一种流式计算系统,包括:
规则配置平台;
规则管理器;
分布式文件系统;以及
如权利要求10所述的流式计算引擎。
12.一种电子设备,包括:
一个或多个处理器,以及
与所述一个或多个处理器耦合的存储器,所述存储器存储指令,当所述指令被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1到5中任一项所述的方法。
13.一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如权利要求1到5中任一项所述的方法。
CN201911018140.0A 2019-10-24 2019-10-24 用于流式计算的规则更新方法、装置及流式计算系统 Active CN111221550B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911018140.0A CN111221550B (zh) 2019-10-24 2019-10-24 用于流式计算的规则更新方法、装置及流式计算系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911018140.0A CN111221550B (zh) 2019-10-24 2019-10-24 用于流式计算的规则更新方法、装置及流式计算系统

Publications (2)

Publication Number Publication Date
CN111221550A CN111221550A (zh) 2020-06-02
CN111221550B true CN111221550B (zh) 2022-09-06

Family

ID=70810949

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911018140.0A Active CN111221550B (zh) 2019-10-24 2019-10-24 用于流式计算的规则更新方法、装置及流式计算系统

Country Status (1)

Country Link
CN (1) CN111221550B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111858316A (zh) * 2020-06-30 2020-10-30 海尔优家智能科技(北京)有限公司 场景发布方法、装置、存储介质及电子装置
CN112579054A (zh) * 2020-12-10 2021-03-30 平安普惠企业管理有限公司 规则引擎的规则更新方法、装置、设备及介质
CN113434282B (zh) * 2021-07-20 2024-03-26 支付宝(杭州)信息技术有限公司 流计算任务的发布、输出控制方法及装置
CN114020762A (zh) * 2021-11-09 2022-02-08 中国建设银行股份有限公司 一种用户评价规则引擎系统及其方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106325854A (zh) * 2016-08-11 2017-01-11 上海浦东发展银行股份有限公司信用卡中心 一种基于Groovy的规则引擎系统
CN107632842A (zh) * 2017-09-26 2018-01-26 携程旅游信息技术(上海)有限公司 规则配置和发布方法、系统、设备及存储介质
CN107943482A (zh) * 2017-11-02 2018-04-20 千寻位置网络有限公司 基于规则的流式数据处理方法统一监控平台
CN109918079A (zh) * 2019-01-31 2019-06-21 平安科技(深圳)有限公司 规则引擎系统的规则更新方法、装置和计算机设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050049924A1 (en) * 2003-08-27 2005-03-03 Debettencourt Jason Techniques for use with application monitoring to obtain transaction data
US9430257B2 (en) * 2013-01-03 2016-08-30 Red Hat Israel, Inc. Scheduling virtual machines using user-defined rules
US10193958B2 (en) * 2014-12-31 2019-01-29 Juniper Networks, Inc. Policy based framework for application management in distributed systems
US10572276B2 (en) * 2016-09-12 2020-02-25 International Business Machines Corporation Window management based on a set of computing resources in a stream computing environment
CN109086031B (zh) * 2018-06-28 2022-08-05 创新先进技术有限公司 一种基于规则引擎的业务决策方法和装置
CN109857524B (zh) * 2019-01-25 2024-02-27 深圳前海微众银行股份有限公司 流式计算方法、装置、设备及计算机可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106325854A (zh) * 2016-08-11 2017-01-11 上海浦东发展银行股份有限公司信用卡中心 一种基于Groovy的规则引擎系统
CN107632842A (zh) * 2017-09-26 2018-01-26 携程旅游信息技术(上海)有限公司 规则配置和发布方法、系统、设备及存储介质
CN107943482A (zh) * 2017-11-02 2018-04-20 千寻位置网络有限公司 基于规则的流式数据处理方法统一监控平台
CN109918079A (zh) * 2019-01-31 2019-06-21 平安科技(深圳)有限公司 规则引擎系统的规则更新方法、装置和计算机设备

Also Published As

Publication number Publication date
CN111221550A (zh) 2020-06-02

Similar Documents

Publication Publication Date Title
CN111221550B (zh) 用于流式计算的规则更新方法、装置及流式计算系统
CN107317730B (zh) 用于监控区块链节点状态的方法、设备和系统
US10394693B2 (en) Quantization of data streams of instrumented software
CN107729041B (zh) 应用程序热更新方法、装置、终端和存储介质
US11038690B2 (en) Policy-driven dynamic consensus protocol selection
US9253265B2 (en) Hot pluggable extensions for access management system
US20180157543A1 (en) System and method for a generic actor system container application
US20170093988A1 (en) Workflow service using state transfer
CN109117252B (zh) 基于容器的任务处理的方法、系统及容器集群管理系统
TW201411387A (zh) 更新硬體庫以供具有fpga共處理器的電腦系統上的應用程式使用
US20150242200A1 (en) Re-configuration in cloud computing environments
US20090113250A1 (en) Service testing
US10230820B2 (en) Analytics driven update notification
US10656939B2 (en) Modeling lifetime of hybrid software application using application manifest
CN112433863A (zh) 微服务调用方法、装置、终端设备以及存储介质
CN109828830B (zh) 用于管理容器的方法和装置
CN109508249B (zh) 崩溃处理方法、装置及电子设备
US10558502B2 (en) Software application runtime having dynamic evaluation functions and parameters
US8863133B2 (en) License management in a cluster environment
CN109218259B (zh) 许可管理方法及装置、applm功能实体及计算机可读存储介质
CN111857736B (zh) 云计算产品的生成方法、装置、设备及存储介质
JP4563403B2 (ja) 通信ネットワーク内での利用方法およびシステム
CN115480775A (zh) 一种云原生容器平台集成方法及系统
CN113986833A (zh) 文件合并方法、系统、计算机系统及存储介质
CN112083945A (zh) Npm安装包的更新提示方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant