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

一种轻量级分布式增量自调度方法、系统、设备和介质与流程

2021-11-10 04:39:00 来源:中国专利 TAG:


1.本发明涉及分布式增量自调度技术领域,特别是涉及一种轻量级分布式增量自调度方法、系统、设备和介质。


背景技术:

2.一般情况下,监听和轮询是常规的2种获取动态/静态数据变化的解决方案,其适用对象大多为对调度时效性要求不太高的中小型公司或部门,在要求能够快速响应业务需求时常采用该方案实现。
3.对于轮询方案来说,由于无论数据源是否变动,都要周期性定时轮询查看数据源是否变化,因为有周期性存在,所以会导致数据源变化时实时性处理效率不高;当在数据源没有发生改变的情况下,轮询的周期性会导致重复的资源消耗。
4.因此,亟需解决常规轮询周期性处理任务影响效率和资源分配的问题。


技术实现要素:

5.鉴于以上所述现有技术的缺点,本技术的目的在于提供一种轻量级分布式增量自调度方法、系统、设备和介质,以解决现有技术常规轮询周期性处理任务影响效率和资源分配的问题。
6.为实现上述目的及其他相关目的,本技术提供一种轻量级分布式增量自调度方法,所述方法包括:生产者定时根据相应的任务配置增量轮询数据源的变化,以获取发生更新的数据,并对更新数据分批提取至消息层;消息层中实时更新消息队列;所述消息队列中包含对应不同消费者的消息组,提取至消息层的更新数据被平均分配至各个消息组中;每个消息包含有唯一标识;一或多个消费者根据相应的任务配置,依据各消息的唯一标识从各自指定的消息组中提取消息并进行消费,以供将消息传给下游服务完成业务操作。
7.于本技术的一实施例中,所述方法包括:分批提取更新数据时,记录每次提取操作的提取信息,以供下次提取时从上一提取结束位置继续开始提取;其中,所述提取信息包含:提取位置、提取数量、及提取时间中任意一种或多种。
8.于本技术的一实施例中,所述对获取的更新数据分批提取的方式包括以下任意一种或多种:按获取的先后顺序依次提取;按生产者或消费者对应的任务配置筛选提取;依据更新数据的优先级高低依次提取;依据更新数据的实时性要求不同分别提取。
9.于本技术的一实施例中,所述唯一标识是依据各消息对应的更新数据所属的数据源所标记的具有唯一性的标识符。
10.于本技术的一实施例中,所述消息层中实时更新消息队列,包括:消息层实时判断消息队列中各消息是否被消费成功;若所述消息被消费成功,则将该消息标记为已消费,以供被消息层更新时删除;若所述消息未消费成功,则在消息层更新时保留,直到该消息被正确消费完成。
11.于本技术的一实施例中,所述方法还包括:所述生产者根据消费者数量,将每批获
取的更新数据平均分配至消息层中分别对应不同消费者的消息组中,以供加快消息处理速度。
12.于本技术的一实施例中,所述数据源包括:搜索引擎、db、及api中任意一种。
13.为实现上述目的及其他相关目的,本技术提供一种轻量级分布式增量自调度方法系统,所述系统包括:生产者,用于生产者定时根据相应的任务配置增量轮询数据源的变化,以获取发生更新的数据,并对更新数据分批提取至消息层;消息层,用于消息层中实时更新消息队列;所述消息队列中包含对应不同消费者的消息组,提取至消息层的更新数据被平均分配至各个消息组中;每个消息包含有唯一标识;一或多个消费者,用于根据相应的任务配置,依据各消息的唯一标识从各自指定的消息组中提取消息并进行消费,以供将消息传给下游服务完成业务操作。
14.为实现上述目的及其他相关目的,本技术提供一种计算机设备,所述设备包括:所述设备包括:存储器、处理器、及通信器;所述存储器用于存储计算机指令;所述处理器运行计算机指令实现如上所述的方法;所述通信器与外部设备通信连接,以获取数据源或将消息传给下游服务。
15.为实现上述目的及其他相关目的,本技术提供一种计算机可读存储介质,存储有计算机指令,所述计算机指令被运行时执行如上所述的方法。
16.综上所述,本技术的一种轻量级分布式增量自调度方法、系统、设备和介质,通过生产者定时根据相应的任务配置增量轮询数据源的变化,以获取发生更新的数据,并对更新数据分批提取至消息层;消息层中实时更新消息队列;所述消息队列中包含对应不同消费者的消息组,提取至消息层的更新数据被平均分配至各个消息组中;每个消息包含有唯一标识;一或多个消费者根据相应的任务配置,依据各消息的唯一标识从各自指定的消息组中提取消息并进行消费,以供将消息传给下游服务完成业务操作。
17.具有以下有益效果:
18.本技术能够有效的把业务实现和业务系统隔离开来,使得在不影响正常业务逻辑的情况下灵活快速的响应业务需求。
附图说明
19.图1显示为本技术于一实施例中轻量级分布式增量自调度方法的流程示意图。
20.图2显示为本技术于一实施例中轻量级分布式增量自调度系统的框架示意图。
21.图3显示为本技术于一实施例中计算机设备的结构示意图。
具体实施方式
22.以下通过特定的具体实例说明本技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本技术的其他优点与功效。本技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本技术的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
23.需要说明的是,以下实施例中所提供的图示仅以示意方式说明本技术的基本构想,虽然图式中仅显示与本技术中有关的组件而非按照实际实施时的组件数目、形状及尺
寸绘制,但其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
24.在通篇说明书中,当说某部分与另一部分“连接”时,这不仅包括“直接连接”的情形,也包括在其中间把其它元件置于其间而“间接连接”的情形。另外,当说某种部分“包括”某种构成要素时,只要没有特别相反的记载,则并非将其它构成要素,排除在外,而是意味着可以还包括其它构成要素。
25.其中提到的第一、第二及第三等术语是为了说明多样的部分、成分、区域、层及/或段而使用的,但并非限定于此。这些术语只用于把某部分、成分、区域、层或段区别于其它部分、成分、区域、层或段。因此,以下叙述的第一部分、成分、区域、层或段在不超出本技术范围的范围内,可以言及到第二部分、成分、区域、层或段。
26.再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“a、b或c”或者“a、b和/或c”意味着“以下任一个:a;b;c;a和b;a和c;b和c;a、b和c”。仅当元件、功能或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
27.针对常规轮询周期性处理任务影响效率和资源分配的问题,本技术提出了一种轻量级分布式增量自调度方法、系统、设备和介质,该调度方案能够有效的把业务实现和业务系统隔离开来,使得在不影响正常业务逻辑的情况下灵活快速的响应业务需求。
28.如图1所示,展示为本技术一实施例中的轻量级分布式增量自调度方法的流程示意图。
29.如图所示,所述方法包括:
30.步骤s101:生产者定时根据相应的任务配置增量轮询数据源的变化,以获取发生更新的数据,并对更新数据分批提取至消息层。
31.需要说明的是,本技术增量轮询与常见全量轮询不同的是,本技术只针对变化或更新的增量数据进行轮询。另外,生产者中每个任务都会有自己相应的任务配置,具体如何增量轮询则根据任务配置执行,例如获取数据源a的数据,或者获取价格信息数据等等。
32.于本实施例中,所述数据源包括但不限于:搜索引擎(elasticsearch)、db、及应用程序接口api中任意一种。
33.举例来说,如酒店服务类的门户网站,每天有上千表,累计十多亿数据更新,每天有将近百万次数据查询请求,用户可以从粗粒度国家省份城市汇总不断下钻到酒店,房型粒度的数据。
34.而本技术每次轮询获取的更新数据实际上也可能是上亿的,而如此巨量的数据依次性放入消息层构成消息队列显然是很困难或无法实现的。因此,本技术针对每次轮询获取的更新数据采取分批提取。
35.其中,为了实现连贯准确的分配提取,本技术在分批提取更新数据时,记录每次提取操作的提取信息,以供下次提取时从上一提取结束位置继续开始提取;其中,所述提取信息包含:提取位置、提取数量、及提取时间中任意一种或多种。
36.举例来说,上次提取的结束位置为a,或者提取了b个数据,或者数据被提取节点时间为c,而依据abc中一个或多个可准确找到上次提取数据,进而可以找到结束位置,以便下次提取时从该结束位置继续开始提取。
37.于本实施例中,所述对获取的更新数据分批提取的方式包括以下任意一种或多种:
38.a、按获取的先后顺序依次提取;
39.b、按生产者或消费者对应的任务配置筛选提取;
40.c、依据更新数据的优先级高低依次提取;
41.d、依据更新数据的实时性要求不同分别提取。
42.举例来说,当获取的更新数据对于消费者来说区别不大,那么便可以按照正常的获取的先后顺序依次提取,而如果生产者或消费者的任务配置,或者所更新的数据存在不同优先级或者实时性要求时,那么便可以根据特殊需求对更新数据进行对应方式的提取,以便提高消息处理速度。
43.于本实施例中,所述方法还包括:所述生产者根据消费者数量,将每批获取的更新数据平均分配至消息层中分别对应不同消费者的消息组中,以供加快消息处理速度。
44.例如,一个a任务,生产者producor生产了10条数据,此时有2个消费者consumer,则本技术会把10条数据分成两个5条数据,其中5条放到消息层中对应第一个消费者的消息组a,另外5条放到消息层中对应第一个消费者的消息组b,这样每个消费者consumer各自消费各自对应消息组的数据,可以加快消息处理速度。
45.步骤s102:消息层中实时更新消息队列;所述消息队列中包含对应不同消费者的消息组,提取至消息层的更新数据被平均分配至各个消息组中;每个消息包含有唯一标识。
46.于本实施例中,所述唯一标识是依据各消息对应的更新数据所属的数据源所标记的具有唯一性的标识符。例如itemkey或row数据等。
47.于本实施例中,所述消息层中实时更新消息队列,包括:消息层实时判断消息队列中各消息是否被消费成功;若所述消息被消费成功,则将该消息标记为已消费,以供被消息层更新时删除;若所述消息未消费成功,则在消息层更新时保留,会在下次调度中重新消费,直到该消息被正确消费完成。
48.步骤s103:一或多个消费者根据相应的任务配置,依据各消息的唯一标识从各自指定的消息组中提取消息并进行消费,以供将消息传给下游服务完成业务操作。
49.举例来说,每个消费者consumer只消费自己指定的消息message,根据任务配置,每个消费者consumer会把消息发送给下游服务(如搜索引擎(elasticsearch)、api等)完成业务操作。
50.在常规的业务发展过程中,一般都存在以下场景:监听数据变化,做业务操作;定期执行某些业务操作;到期执行某些业务操作。一般都是将新增业务逻辑写入到业务系统中来实现,还必须要考虑失败后重试机制来解决,这样的话就会导致业务系统越来越臃肿和脆弱。
51.为解决常规轮询周期性处理任务影响效率和资源分配的问题,本技术提出的一种轻量级分布式增量自调度方法,一方面通过增量轮询来获取更新数据,在通过分批提取以及根据消费者数量平分数据,再由消费者根据唯一标识来消费各自指定消息,从而大大提
高了数据处理的灵活性和消息处理速度。本技术能够有效的把业务实现和业务系统隔离开来,使得在不影响正常业务逻辑的情况下灵活快速的响应业务需求。
52.如图2所示,展示为本技术一实施例中的轻量级分布式增量自调度系统的框架示意图。
53.如图所示,所述系统包括:
54.生产者210,用于定时根据相应的任务配置增量轮询数据源的变化,以获取发生更新的数据,并对更新数据分批提取至消息层;
55.消息层220,用于实时更新消息队列;提取至消息层中每一更新数据构成一消息,每个消息包含有唯一标识;
56.一或多个消费者230,用于根据相应的任务配置,从消息层中依据各消息的位移标识来提取各自指定的消息并进行消费,以供将消息传给下游服务完成业务操作。
57.需要说明的是,上述系统各模块/单元之间的信息交互、执行过程等内容,由于与本技术所述方法实施例基于同一构思,其带来的技术效果与本技术方法实施例相同,具体内容可参见本技术前述所示的方法实施例中的叙述,此处不再赘述。
58.还需要说明的是,应理解以上系统的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,各个模块可以为单独设立的处理元件,也可以集成在上述系统的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述系统的存储器中,由上述装置的某一个处理元件调用并执行以上各个模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
59.例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,简称asic);或,一个或多个微处理器(digital signal processor,简称dsp);或,一个或者多个现场可编程门阵列(field programmable gate array,简称fpga)等;再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,简称cpu)或其它可以调用程序代码的处理器;再如,这些模块可以集成在一起,以片上系统(system

on

a

chip,简称soc)的形式实现。
60.如图3所示,展示为本技术于一实施例中的计算机设备的结构示意图。如图所示,所述计算机设备300包括:存储器301、处理器302、及通信器303;所述存储器301用于存储计算机指令;所述处理器302运行计算机指令实现如图1所述的方法。所述通信器303与外部设备通信连接,以获取数据源或将消息传给下游服务。
61.在一些实施例中,所述计算机设备300中的所述存储器301的数量均可以是一或多个,所述处理器302的数量均可以是一或多个,而图3中均以一个为例。
62.于本技术一实施例中,所述计算机设备300中的处理器302会按照如图1所述的步骤,将一个或多个以应用程序的进程对应的指令加载到存储器301中,并由处理器302来运
行存储在存储器301中的应用程序,从而实现如图1所述的方法。
63.所述存储器301可以包括随机存取存储器(random access memory,简称ram),也可以包括非易失性存储器(non

volatile memory),例如至少一个磁盘存储器。所述存储器301存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
64.所述处理器302可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
65.所述通信器303用于实现数据库访问装置与其他设备(例如客户端、读写库和只读库)之间的通信连接。所述通信器303可包含一组或多组不同通信方式的模块,例如,与can总线通信连接的can通信模块。所述通信连接可以是一个或多个有线/无线通讯方式及其组合。通信方式包括:互联网、can、内联网、广域网(wan)、局域网(lan)、无线网络、数字用户线(dsl)网络、帧中继网络、异步传输模式(atm)网络、虚拟专用网络(vpn)和/或任何其它合适的通信网络中的任何一个或多个。例如:wifi、蓝牙、nfc、gprs、gsm、及以太网中任意一种及多种组合。
66.在一些具体的应用中,所述计算机设备300的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清除说明起见,在图3中将各种总线都成为总线系统。
67.于本技术的一实施例中,本技术提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如图1所述的方法。
68.在任何可能的技术细节结合层面,本技术可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本技术的各个方面的计算机可读程序指令。
69.计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是(但不限于)电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd

rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
70.这里所描述的计算机可读程序可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算
机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
71.用于执行本技术操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c 等,以及过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本技术的各个方面。
72.综上所述,本技术提供的一种轻量级分布式增量自调度方法、系统、设备和介质,通过生产者定时根据相应的任务配置增量轮询数据源的变化,以获取发生更新的数据,并对更新数据分批提取至消息层;消息层中实时更新消息队列;所述消息队列中包含对应不同消费者的消息组,提取至消息层的更新数据被平均分配至各个消息组中;每个消息包含有唯一标识;一或多个消费者根据相应的任务配置,依据各消息的唯一标识从各自指定的消息组中提取消息并进行消费,以供将消息传给下游服务完成业务操作。
73.本技术有效克服了现有技术中的种种缺点而具高度产业利用价值。
74.上述实施例仅例示性说明本技术的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本技术的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中包含通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本技术的权利要求所涵盖。
再多了解一些

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

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

相关文献