CN107612842A - 基于令牌管理的数据采集方法、系统、设备及存储介质 - Google Patents
基于令牌管理的数据采集方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN107612842A CN107612842A CN201710802198.9A CN201710802198A CN107612842A CN 107612842 A CN107612842 A CN 107612842A CN 201710802198 A CN201710802198 A CN 201710802198A CN 107612842 A CN107612842 A CN 107612842A
- Authority
- CN
- China
- Prior art keywords
- token
- data
- acquisition
- idle
- acquisition applications
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种基于令牌管理的数据采集方法、系统、设备及存储介质,该方法包括监听数据更新记录,监听到数据更新时新建数据采集任务并存储至任务池;各个采集应用实例向令牌桶申请令牌;如果一所述采集应用实例获取到空闲令牌,则该采集应用实例将获取的令牌锁定为非空闲令牌;如果一所述采集应用实例未获取到空闲令牌,则于预设申请条件满足时再次向所述令牌桶申请令牌;锁定令牌的采集应用实例向所述任务池申请数据采集任务;锁定令牌的采集应用实例执行从所述任务池获取的数据采集任务,将令牌解锁为空闲令牌。本发明通过这种跨集群高可用的异构数据采集方式,可以高效的完成数据的采集和保存,以实现各种不同的数据采集业务需求。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种安全可靠的基于令牌管理的数据采集方法、系统、设备及存储介质。
背景技术
随着近几年商旅管理公司的快速发展,各个公司都会拥有各个不同的产品线,各个产品线的数据存储在不同类型的数据库中。亦或出于安全考虑,禁止其它程序直接访问其数据库,仅以SOA服务接口的方式为其它程序提供数据查询功能。但像用户订单的数据需要整体的存储和展示,这就需要将各产品线的不同数据格式的订单数据,采集并存储到搜索引擎以提供高并发高性能的查询展示功能。
在互联网行业,异构数据持续实时采集的例子如下:
数据源A是MySQL DB,数据存储在T1和T2表中;
数据源B是SQLServer DB,数据存储在T3和T4表中;
数据源C是SOA服务GetSourceData(timeRange)接口中;
需要采集到搜索引擎ElasticSearch,且在存储上提取T1/T2/T3/T4表的部分字段数据以及SOA服务的GetSourceData接口的返回信息的全部字段,采集存储到搜索引擎ElasticSearch的IndexA TypeA中。
然而,采用现有的数据采集方法,只能通过监听数据库日记的变化来从日记中分析出需要同步的数据,并且采用单一应用循环式方式进行采集,数据采集的可靠性和实时性均得不到保证。
发明内容
针对现有技术中的问题,本发明的目的在于提供一种基于令牌管理的数据采集方法、系统、设备及存储介质,基于令牌争抢机制分配数据采集任务,具有高可用性和高实时性。
本发明实施例提供一种基于令牌管理的数据采集方法,所述方法包括如下步骤:
监听各个数据库或数据服务接口的数据更新记录,监听到数据更新时新建数据采集任务并存储至任务池;
各个采集应用实例向令牌桶申请令牌;
如果一所述采集应用实例获取到空闲令牌,则该采集应用实例将获取的令牌锁定为非空闲令牌;
如果一所述采集应用实例未获取到空闲令牌,则于预设申请条件满足时再次向所述令牌桶申请令牌;
锁定令牌的采集应用实例向所述任务池申请数据采集任务;
锁定令牌的采集应用实例执行从所述任务池获取的数据采集任务;
锁定令牌的采集应用实例执行完毕数据采集任务后,将令牌解锁为空闲令牌。
可选地,所述令牌为占位符,所述采集应用实例将获取的令牌锁定为非空闲令牌时,将该采集应用实例的标识符插入所述令牌中;所述锁定令牌的采集应用实例将令牌解锁为空闲令牌时,将所述令牌中的采集应用实例的标识移除。
可选地,所述监听各个数据库或数据服务接口的数据更新记录,为监听多个产品线所对应的数据库或数据服务接口的数据更新记录;
所述令牌桶中存储有多个令牌,各个所述令牌与所述产品线一一对应;
所述锁定令牌的采集应用实例向所述任务池申请数据采集任务时,所述任务池向该采集应用实例分配与锁定的令牌对应的产品线的数据采集任务。
可选地,如果一所述采集应用实例未获取到空闲令牌,则于预设间隔时间后向令牌桶再次申请令牌;
执行完毕数据采集任务的采集应用实例,于解锁令牌后重新向所述令牌桶申请令牌。
可选地,如果一所述采集应用实例未获取到空闲令牌,则该采集应用实例判断锁定令牌的采集应用实例的占用时间是否超过预设最大时间;
如果是,则该采集应用实例向令牌桶申请解锁占用超时的令牌,获取所述令牌桶解锁的令牌并将获取的令牌重新锁定为非空闲令牌。
可选地,多个采集应用实例均申请所述令牌桶中的同一空闲令牌时,根据该多个采集应用实例的申请时间对各个采集应用实例进行优先级排序,将该空闲令牌分配给本次申请时间最早的采集应用实例。
可选地,多个采集应用实例均申请所述令牌桶中的同一空闲令牌时,根据该多个应用实例所对应的服务器的硬件配置进行优先级排序,将该空闲令牌分配给本次申请中对应的服务器的硬件配置最优的采集应用实例。
可选地,当所述令牌桶中存在多个空闲令牌时,所述令牌桶根据所述空闲令牌的预设优先级从高到低的顺序,依次分配所述空闲令牌。
可选地,当所述令牌桶中存在多个空闲令牌时,所述令牌桶计算所述空闲令牌前一次占用时间距离当前时刻的占用时间间隔,并依次分配占用时间间隔最长的空闲令牌。
可选地,所述监听各个数据库或数据服务接口的数据更新记录,监听到数据更新时新建数据采集任务包括如下步骤:
检查各个数据库或数据服务接口的各条数据更新记录的时间戳,提取时间戳位于预设更新时间段内的数据更新记录;
根据提取的数据更新记录新建数据采集任务。
可选地,所述监听到数据更新时新建数据采集任务,包括如下步骤:
根据各个数据更新记录的时间戳,将提取的数据更新记录以多个更新时间段进行切分;
新建多个数据采集任务,所述数据采集任务与所述更新时间段一一对应,各个所述数据采集任务存储有于所对应的更新时间段中发生更新的数据更新记录。
可选地,所述监听各个数据库或数据服务接口的数据更新记录,监听到数据更新时新建数据采集任务包括如下步骤:
根据数据更新记录的ID号依次检查各个数据库或数据服务接口的各条数据更新记录,提取与前次检查时刻相比,存在更新的ID号所对应的数据更新记录;
根据提取的数据更新记录新建数据采集任务。
可选地,所述锁定令牌的采集应用实例执行从所述任务池获取的数据采集任务:
从对应的数据来源获取待采集的数据,根据采集到的数据更新搜索引擎的数据库。
本发明实施例还提供一种基于令牌管理的数据采集系统,用于实现所述的基于令牌管理的数据采集方法,所述系统包括:
任务新建模块,用于监听各个数据库或数据服务接口的数据更新记录,监听到数据更新时新建数据采集任务;
任务池,所述任务池中存储有各个所述数据采集任务;
令牌桶,所述令牌桶中存储有至少一令牌;
多个采集应用实例,用于在数据采集过程中执行如下步骤:
各个所述采集应用实例向所述令牌桶申请令牌;
如果一所述采集应用实例获取到空闲令牌,则该采集应用实例将获取的令牌锁定为非空闲令牌;如果一所述采集应用实例未获取到空闲令牌,则于预设申请条件满足时再次向所述令牌桶申请令牌;
锁定令牌的采集应用实例向所述任务池申请数据采集任务;
锁定令牌的采集应用实例执行从所述任务池获取的数据采集任务;
锁定令牌的采集应用实例执行完毕数据采集任务后,将令牌解锁为空闲令牌。
本发明实施例还提供一种基于令牌管理的数据采集设备,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行所述的基于令牌管理的数据采集方法的步骤。
本发明实施例还提供一种计算机可读存储介质,用于存储程序,所述程序被执行时实现所述的基于令牌管理的数据采集方法的步骤。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
本发明所提供的基于令牌管理的数据采集方法、系统、设备及存储介质具有下列优点:
本发明应用于需要从数据库/SOA服务等多种数据源,进行数据集中采集的场合,基于令牌争抢的机制,同一时间点确保一个采集应用实例工作即可;可以确保对数据或其他来源的数据的采集持续安全进行,在多个集群或个别采集服务和数据出现故障的情况下仍然可以正常采集和存储数据;通过这种跨集群高可用的异构数据采集方式,可以高效的完成数据的采集和保存,以实现各种不同的数据采集业务需求。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。
图1是本发明一实施例的基于令牌管理的数据采集方法的流程图;
图2是本发明一具体应用实例的基于令牌管理的数据采集方法的流程图;
图3是本发明一实施例的判断令牌占用是否超时的流程图;
图4是本发明一实施例的监听数据更新并新建任务的流程图;
图5是本发明一具体应用实例的基于令牌管理的数据采集方法的时序图;
图6是本发明一实施例的基于令牌管理的数据采集系统的结构示意图;
图7是本发明一实施例的基于令牌管理的数据采集设备的结构示意图;
图8是本发明一实施例的计算机可读存储介质的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
如图1所示,本发明实施例提供一种基于令牌管理的数据采集方法,所述方法包括如下步骤:
S100:监听各个数据库或数据服务接口的数据更新记录,监听到数据更新时新建数据采集任务并存储至任务池;
S200:各个采集应用实例向令牌桶申请令牌,令牌桶中可以包括一个或多个令牌,具体数量可以根据需要进行设置;
此处令牌是一种能够控制站点占有媒体的特殊帧,以区别数据帧及其他控制帧。令牌桶是一种常用的流量控制技术。
S310:如果一所述采集应用实例获取到空闲令牌,则该采集应用实例将获取的令牌锁定为非空闲令牌,锁定后的令牌即不能再被其他应用实例所获取;
S320:如果一所述采集应用实例未获取到空闲令牌,则于预设申请条件满足时再次向所述令牌桶申请令牌;
S400:锁定令牌的采集应用实例向所述任务池申请数据采集任务;
S500:锁定令牌的采集应用实例执行从所述任务池获取的数据采集任务,即从对应的数据库或数据服务接口中获取到对应的更新数据,此处数据服务接口可以是SOA(Service-Oriented Architecture,面向服务的架构)接口等;
S600:锁定令牌的采集应用实例执行完毕数据采集任务后,将令牌解锁为空闲令牌,即该令牌可以再次进入流通,被其他采集应用实例所获取。此外,任务池也要进行相应更新,去除执行完毕的任务或者将执行完毕的任务进行标记,避免同一个数据采集任务重复分配。
本发明通过令牌争抢的方式,使得在异构数据采集应用所在的多个集群中的个别集群宕机、机器死机、应用异常、数据异常情况下,可以确保异构数据采集功能继续正常的工作。甚至,多个集群中仅存一个应用实例能够正常工作,即可确保采集作业的正常运行。
因此,本发明的数据采集方法依赖于令牌争抢机制,只有争抢到令牌的采集应用实例才可以从任务池中获取到数据采集任务。这个机制可以通过采集应用实例端进行设置,例如设置采集应用实例只有在获取到令牌时,才触发向任务池领取任务的功能,并且在执行完毕时,向任务池报告任务执行状态;也可以通过任务池端进行设置,例如在分配任务时,验证来申请任务的采集应用实例是否已经获取到令牌,如果有,则分配相应任务,否则,任务池则拒绝向采集应用实例分配任务。
进一步地,所述令牌为占位符,所述采集应用实例将获取的令牌锁定为非空闲令牌时,将该采集应用实例的标识符插入所述令牌中;所述锁定令牌的采集应用实例将令牌解锁为空闲令牌时,将所述令牌中的采集应用实例的标识移除。采集应用实例的标识符可以是采集应用实例所对应的服务器的IP地址,或预先分配给该采集应用实例的ID号等等,以标识该采集应用实例并与其他的采集应用实例区分开。当一个令牌中已经插入有标识符,说明该令牌已被占用,无法再分配给其他采集应用实例,只有当该标识符移除之后,该令牌才可以再次进入流通。
此处的占位符指的是程序中的占位符。占位符就是先占住一个固定的位置,等待用户向里面添加内容的符号。例如,此处占位符可以是格式占位符,可以用一些特定的符号来表示某些特定的输入和输出。例如,scanf("%d,%d,%d",&a,&b,&c);//表示从键盘输入三个整数,用逗号分隔;scanf("%c",&s);//表示从键盘输入一个字符等等。
如图2所示,为本发明一具体实例的基于令牌管理的数据采集方法的流程图。在该具体实例中,以令牌桶中设置一个令牌为例进行介绍。
在该具体实例中,两个集群X1,X2中的四台服务器(A/B/C/D)共部署了六个采集应用实例(1~6),共同参与采集任务。其中集群X1中的服务器B中部署的采集应用实例3争抢到了采集令牌,而其他的采集应用实例则争抢失败。争抢成功的采集应用实例3向任务池申请任务,申请得到任务之后,运行采集作业,从产品线对应的数据库或SOA服务接口中采集数据,并据此更新搜索引擎的数据库,以为搜索引擎服务提供最新最全的数据。
在实际应用中,令牌数量不限于一个,可以根据需要进行设置,例如对于具有多个产品线的系统,每个产品线设置一个令牌等等。多个产品线可以根据预设条件进行区分,例如,对于旅游产品,可能会划分为火车票产品线、机票产品线、租车产品线等等。而每个令牌可以分别对应每个产品线。争抢到对应的令牌的采集应用实例即从任务池中获取对应产品线的数据采集任务,并从对应的产品线的数据库或SOA接口中获取最近更新的数据。同样地,在监听各个数据库或数据服务接口的数据更新记录时,即为监听多个产品线所对应的数据库或数据服务接口的数据更新记录。
进一步地,如果一所述采集应用实例未获取到空闲令牌,则于预设间隔时间后向令牌桶再次申请令牌。另外,执行完毕数据采集任务的采集应用实例,也应该重新进入流转,继续向令牌桶申请令牌。预设间隔时间可以是很短的一个时间,从而保证数据更新的及时性和有效性。
进一步地,如图3所示,如果一所述采集应用实例未获取到空闲令牌,则可以进一步判断非空闲令牌的占用时间是否超时。
S321:该采集应用实例判断锁定令牌的采集应用实例的占用时间是否超过预设最大时间;
S322:如果是,则该采集应用实例向令牌桶申请解锁占用超时的令牌,获取所述令牌桶解锁的令牌并将获取的令牌重新锁定为非空闲令牌,该采集应用实例锁定了非空闲令牌之后,可以向任务池申请任务,然后执行对应的数据采集任务;
S333:如果否,则该采集应用实例在满足预设申请条件后再次向令牌桶申请令牌。
即通过对采集应用实例占用令牌的时间的判断,避免采集应用实例因为故障或数据采集错误等异常情况而长时间不正当占用令牌。该预设最大时间可以根据需要进行设置。
进一步地,多个采集应用实例均申请所述令牌桶中的同一空闲令牌时,可以根据该多个采集应用实例的申请时间对各个采集应用实例进行优先级排序,将该空闲令牌分配给本次申请时间最早的采集应用实例。即例如采集应用实例1、采集应用实例2和采集应用实例3均向令牌桶申请空闲令牌时,看每个采集应用实例的申请时间,例如采集应用实例3是最先申请的,则首先为采集应用实例3分配令牌,在后续如果有新的空闲令牌,则将新的空闲令牌分配给采集应用实例1和采集应用实例2中申请时间较早的一个。并且申请成功的采集应用实例的申请时间则消除,下次申请时以新的申请时间为准。
在另一种可选的实施方式中,也可以根据服务器的硬件配置进行分配,具体地,当多个采集应用实例均申请所述令牌桶中的同一空闲令牌时,根据该多个应用实例所对应的服务器的硬件配置进行优先级排序,将该空闲令牌分配给本次申请中对应的服务器的硬件配置最优的采集应用实例。即当有多个采集应用实例申请令牌时,首先分配给硬件配置比较好的服务器,例如配备有四核CPU的服务器优先于配备有两核CPU的服务器,配备有4G内存的服务器优先于配备有2G内存的服务器等等。具体硬件配置的比较维度可以是CPU、内存、硬盘转速、硬盘余量等等,比较的参数也可以根据需要进行选择。
此处仅列举了两种实施方式,在实际应用中,采用其他方式将令牌分配给采集应用实例也是可以的,均属于本发明的保护范围之内。
可选地,当所述令牌桶中存在多个空闲令牌时,所述令牌桶根据所述空闲令牌的预设优先级从高到低的顺序,依次分配所述空闲令牌。例如,对于多个产品线来说,有的产品线搜索量特别大,或者有的产品线对应的数据更新特别频繁,则可以将对应的令牌的优先级设置得较高,以保证优先处理此类产品线的数据采集。
此外,在另一种可选的实施方式中,当所述令牌桶中存在多个空闲令牌时,所述令牌桶计算所述空闲令牌前一次占用时间距离当前时刻的占用时间间隔,并依次分配占用时间间隔最长的空闲令牌。即如果同时有多个空闲令牌待分配,而其中一个距离前一次被占用的时间已经比较久了,可以先分配此令牌,以避免间隔时间太久,影响该令牌对应的产品线数据更新的时效性。此处仅列举了两种实施方式,在实际应用中,根据其他方式选择分配令牌,也是可以的,均属于本发明的保护范围之内。
如图4所示,可选地,所述监听各个数据库或数据服务接口的数据更新记录,监听到数据更新时新建数据采集任务包括如下步骤:
S110:检查各个数据库或数据服务接口的各条数据更新记录的时间戳,提取时间戳位于预设更新时间段内的数据更新记录;
S120:根据提取的数据更新记录新建数据采集任务。
可选地,所述监听到数据更新时新建数据采集任务,包括如下步骤:
S130:根据各个数据更新记录的时间戳,将提取的数据更新记录以多个更新时间段进行切分;
S140:新建多个数据采集任务,所述数据采集任务与所述更新时间段一一对应,各个所述数据采集任务存储有于所对应的更新时间段中发生更新的数据更新记录。
此外,在另一种实施方式中,所述监听各个数据库或数据服务接口的数据更新记录,监听到数据更新时新建数据采集任务包括如下步骤:
根据数据更新记录的ID号依次检查各个数据库或数据服务接口的各条数据更新记录,提取与前次检查时刻相比,存在更新的ID号所对应的数据更新记录;
根据提取的数据更新记录新建数据采集任务。
可选地,所述锁定令牌的采集应用实例执行从所述任务池获取的数据采集任务:
从对应的数据来源获取待采集的数据,根据采集到的数据更新搜索引擎的数据库。
如图5所示,为本发明一具体实例的基于令牌管理的数据采集方法的时序图。在该具体实例中,以令牌桶中有一个令牌为例说明,然而本发明的实施方式不限于此。数据采集方法主要根据如下步骤执行:
(1)采集应用实例启动,向令牌桶申请采集令牌;
(2)如果当前没有其他采集应用实例获得令牌,则采集应用实例获取到该令牌,并将其改为锁定状态;
(3)如果当前已有其它应用实例获得令牌,则采集应用实例检查已被其他采集应用实例锁定的令牌已被锁定的时间,如果超过15秒(不限于此,可以根据需要进行设置),则采集应用实例主动向令牌桶申请解锁该令牌,并占为己有,同时将令牌再次锁定。设置此阈值时间,可以因为采集应用实例故障或数据源故障等异常情况影响任务执行,可以由其他采集应用实例重新获取该令牌,向任务池申请任务,保障数据采集工作的正常进行;
(4)采集应用实例如果争抢到令牌并锁定令牌,则到任务池中申请数据采集任务并开始数据采集工作,将一个批次的数据从数据库和SOA服务数据源同步到搜索引擎。
(5)采集应用实例同步完成后,则更新任务池,解锁令牌,并结束当前采集任务,开始下一批次的争抢采集流程。
在任务执行过程中,如果数据同步任务执行失败,则采集应用实例可以自动重新尝试执行,在失败次数大于预设阈值n仍然无法同步数据时,则采集应用实例需要放弃当前任务,并且将任务执行状态报告给任务池,任务池可以将该任务分配给其他的采集应用实例,以避免是因为采集应用实例本身的原因无法执行,如果多个采集应用实例均无法完成采集时,则可以停止分配该任务,向运维人员进行报警。
(6)如果采集应用实例没有争抢到采集令牌,则重新尝试向令牌桶获取令牌,重复步骤(1)。
此处仅列举了一种可选的实施方式,在实际应用中,还可以在本发明的数据采集方法基础上进行其他变形,均属于本发明的保护范围之内。例如,令牌桶中可以有多个令牌,对应不同的产品线,获取到令牌后,申请的任务也是对应产品线的数据采集任务,这样一方面可以多线程开展数据采集任务(令牌的数量即为线程的数量),另一方面每个令牌与每个产品线对应,也可以避免在数据采集工作中发生重复采集、遗漏采集等错误,数据采集工作可以有条不紊地进行。另外,如果一个令牌本身发生错误,令牌桶可以将此令牌取消,重新生成替换的令牌。
如图6所示,本发明实施例还提供一种基于令牌管理的数据采集系统,用于实现所述的基于令牌管理的数据采集方法,所述系统包括任务新建模块100、任务池200、令牌桶300和多个采集应用实例400。其中:
所述任务新建模块100用于监听各个数据库或数据服务接口500的数据更新记录,监听到数据更新时新建数据采集任务;所述任务池中存储有各个所述数据采集任务;所述令牌桶中存储有至少一令牌;
所述多个采集应用实例,用于在数据采集过程中执行如下步骤:
各个所述采集应用实例向所述令牌桶申请令牌;
如果一所述采集应用实例获取到空闲令牌,则该采集应用实例将获取的令牌锁定为非空闲令牌;如果一所述采集应用实例未获取到空闲令牌,则于预设申请条件满足时再次向所述令牌桶申请令牌;
锁定令牌的采集应用实例向所述任务池申请数据采集任务;
锁定令牌的采集应用实例执行从所述任务池获取的数据采集任务,即从数据采集任务对应的数据库或数据服务接口500中采集数据;
锁定令牌的采集应用实例执行完毕数据采集任务后,将令牌解锁为空闲令牌,令牌可以重新分配给其他采集应用实例,对应的采集应用实例也可以再次向令牌桶申请令牌。
采用本发明的数据采集方法和系统,与现有技术中的数据采集方法相比,主要有如下区别:
表1:本发明与现有技术对比表
由此可以看出,通过采用本发明的基于令牌管理的数据采集方法和系统,通过这种跨集群高可用的异构数据采集方式,可以高效的完成数据的采集和保存,以实现各种不同的数据采集业务需求。
本发明实施例还提供一种基于令牌管理的数据采集设备,包括处理器;存储器,其中存储有所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行所述的基于令牌管理的数据采集方法的步骤。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“平台”。
下面参照图7来描述根据本发明的这种实施方式的电子设备600。图7显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同平台组件(包括存储单元620和处理单元610)的总线630、显示单元640等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元610可以执行如图1中所示的步骤。
所述存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
所述存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储平台等。
采用该种基于令牌管理的数据采集设备时,通过令牌争抢的方式,使得在异构数据采集应用所在的多个集群中的个别集群宕机、机器死机、应用异常、数据异常情况下,可以确保异构数据采集功能继续正常的工作。甚至,多个集群中仅存一个应用实例能够正常工作,即可确保采集作业的正常运行。
本发明实施例还提供一种计算机可读存储介质,用于存储程序,所述程序被执行时实现所述的基于令牌管理的数据采集方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。
参考图8所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
采用本发明的计算机可读存储介质,当采用外部设备进行读取并执行时,通过令牌争抢的方式,使得在异构数据采集应用所在的多个集群中的个别集群宕机、机器死机、应用异常、数据异常情况下,可以确保异构数据采集功能继续正常的工作。
本发明所提供的基于令牌管理的数据采集方法、系统、设备及存储介质具有下列优点:
本发明应用于需要从数据库/SOA服务等多种数据源,进行数据集中采集的场合,基于令牌争抢的机制,同一时间点确保一个采集应用实例工作即可;可以确保对数据或其他来源的数据的采集持续安全进行,在多个集群或个别采集服务和数据出现故障的情况下仍然可以正常采集和存储数据;通过这种跨集群高可用的异构数据采集方式,可以高效的完成数据的采集和保存,以实现各种不同的数据采集业务需求。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (16)
1.一种基于令牌管理的数据采集方法,其特征在于,包括如下步骤:
监听各个数据库或数据服务接口的数据更新记录,监听到数据更新时新建数据采集任务并存储至任务池;
各个采集应用实例向令牌桶申请令牌;
如果一所述采集应用实例获取到空闲令牌,则该采集应用实例将获取的令牌锁定为非空闲令牌;
如果一所述采集应用实例未获取到空闲令牌,则于预设申请条件满足时再次向所述令牌桶申请令牌;
锁定令牌的采集应用实例向所述任务池申请数据采集任务;
锁定令牌的采集应用实例执行从所述任务池获取的数据采集任务;
锁定令牌的采集应用实例执行完毕数据采集任务后,将令牌解锁为空闲令牌。
2.根据权利要求1所述的基于令牌管理的数据采集方法,其特征在于,所述令牌为占位符,所述采集应用实例将获取的令牌锁定为非空闲令牌时,将该采集应用实例的标识符插入所述令牌中;所述锁定令牌的采集应用实例将令牌解锁为空闲令牌时,将所述令牌中的采集应用实例的标识移除。
3.根据权利要求1所述的基于令牌管理的数据采集方法,其特征在于,所述监听各个数据库或数据服务接口的数据更新记录,为监听多个产品线所对应的数据库或数据服务接口的数据更新记录;
所述令牌桶中存储有多个令牌,各个所述令牌与所述产品线一一对应;
所述锁定令牌的采集应用实例向所述任务池申请数据采集任务时,所述任务池向该采集应用实例分配与锁定的令牌对应的产品线的数据采集任务。
4.根据权利要求1所述的基于令牌管理的数据采集方法,其特征在于,如果一所述采集应用实例未获取到空闲令牌,则于预设间隔时间后向令牌桶再次申请令牌;
执行完毕数据采集任务的采集应用实例,于解锁令牌后重新向所述令牌桶申请令牌。
5.根据权利要求1所述的基于令牌管理的数据采集方法,其特征在于,如果一所述采集应用实例未获取到空闲令牌,则该采集应用实例判断锁定令牌的采集应用实例的占用时间是否超过预设最大时间;
如果是,则该采集应用实例向令牌桶申请解锁占用超时的令牌,获取所述令牌桶解锁的令牌并将获取的令牌重新锁定为非空闲令牌。
6.根据权利要求1所述的基于令牌管理的数据采集方法,其特征在于,多个采集应用实例均申请所述令牌桶中的同一空闲令牌时,根据该多个采集应用实例的申请时间对各个采集应用实例进行优先级排序,将该空闲令牌分配给本次申请时间最早的采集应用实例。
7.根据权利要求1所述的基于令牌管理的数据采集方法,其特征在于,多个采集应用实例均申请所述令牌桶中的同一空闲令牌时,根据该多个应用实例所对应的服务器的硬件配置进行优先级排序,将该空闲令牌分配给本次申请中对应的服务器的硬件配置最优的采集应用实例。
8.根据权利要求1所述的基于令牌管理的数据采集方法,其特征在于,当所述令牌桶中存在多个空闲令牌时,所述令牌桶根据所述空闲令牌的预设优先级从高到低的顺序,依次分配所述空闲令牌。
9.根据权利要求1所述的基于令牌管理的数据采集方法,其特征在于,当所述令牌桶中存在多个空闲令牌时,所述令牌桶计算所述空闲令牌前一次占用时间距离当前时刻的占用时间间隔,并依次分配占用时间间隔最长的空闲令牌。
10.根据权利要求1所述的基于令牌管理的数据采集方法,其特征在于,所述监听各个数据库或数据服务接口的数据更新记录,监听到数据更新时新建数据采集任务包括如下步骤:
检查各个数据库或数据服务接口的各条数据更新记录的时间戳,提取时间戳位于预设更新时间段内的数据更新记录;
根据提取的数据更新记录新建数据采集任务。
11.根据权利要求10所述的基于令牌管理的数据采集方法,其特征在于,所述监听到数据更新时新建数据采集任务,包括如下步骤:
根据各个数据更新记录的时间戳,将提取的数据更新记录以多个更新时间段进行切分;
新建多个数据采集任务,所述数据采集任务与所述更新时间段一一对应,各个所述数据采集任务存储有于所对应的更新时间段中发生更新的数据更新记录。
12.根据权利要求1所述的基于令牌管理的数据采集方法,其特征在于,所述监听各个数据库或数据服务接口的数据更新记录,监听到数据更新时新建数据采集任务包括如下步骤:
根据数据更新记录的ID号依次检查各个数据库或数据服务接口的各条数据更新记录,提取与前次检查时刻相比,存在更新的ID号所对应的数据更新记录;
根据提取的数据更新记录新建数据采集任务。
13.根据权利要求1所述的基于令牌管理的数据采集方法,其特征在于,所述锁定令牌的采集应用实例执行从所述任务池获取的数据采集任务:
从对应的数据来源获取待采集的数据,根据采集到的数据更新搜索引擎的数据库。
14.一种基于令牌管理的数据采集系统,用于实现权利要求1至13中任一项所述的基于令牌管理的数据采集方法,其特征在于,所述系统包括:
任务新建模块,用于监听各个数据库或数据服务接口的数据更新记录,监听到数据更新时新建数据采集任务;
任务池,所述任务池中存储有各个所述数据采集任务;
令牌桶,所述令牌桶中存储有至少一令牌;
多个采集应用实例,用于在数据采集过程中执行如下步骤:
各个所述采集应用实例向所述令牌桶申请令牌;
如果一所述采集应用实例获取到空闲令牌,则该采集应用实例将获取的令牌锁定为非空闲令牌;如果一所述采集应用实例未获取到空闲令牌,则于预设申请条件满足时再次向所述令牌桶申请令牌;
锁定令牌的采集应用实例向所述任务池申请数据采集任务;
锁定令牌的采集应用实例执行从所述任务池获取的数据采集任务;
锁定令牌的采集应用实例执行完毕数据采集任务后,将令牌解锁为空闲令牌。
15.一种基于令牌管理的数据采集设备,其特征在于,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至13中任一项所述的基于令牌管理的数据采集方法的步骤。
16.一种计算机可读存储介质,用于存储程序,其特征在于,所述程序被执行时实现权利要求1至13中任一项所述的基于令牌管理的数据采集方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710802198.9A CN107612842B (zh) | 2017-09-07 | 2017-09-07 | 基于令牌管理的数据采集方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710802198.9A CN107612842B (zh) | 2017-09-07 | 2017-09-07 | 基于令牌管理的数据采集方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107612842A true CN107612842A (zh) | 2018-01-19 |
CN107612842B CN107612842B (zh) | 2020-03-31 |
Family
ID=61062954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710802198.9A Active CN107612842B (zh) | 2017-09-07 | 2017-09-07 | 基于令牌管理的数据采集方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107612842B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108614877A (zh) * | 2018-04-27 | 2018-10-02 | 携程商旅信息服务(上海)有限公司 | 基于令牌桶的数据复制过程的监控方法及系统 |
CN108647082A (zh) * | 2018-04-13 | 2018-10-12 | 中国民航信息网络股份有限公司 | 基于令牌机制的任务处理方法、装置、设备及介质 |
CN109194539A (zh) * | 2018-08-13 | 2019-01-11 | 中国平安人寿保险股份有限公司 | 数据管控方法、装置、计算机设备及存储介质 |
CN109587075A (zh) * | 2018-11-27 | 2019-04-05 | 联想(北京)有限公司 | 一种业务处理方法、装置、设备及存储介质 |
CN109766316A (zh) * | 2018-12-18 | 2019-05-17 | 深圳壹账通智能科技有限公司 | 文件获取方法、装置、计算机设备和存储介质 |
CN112564968A (zh) * | 2020-12-03 | 2021-03-26 | 腾讯科技(深圳)有限公司 | 故障处理方法、装置及存储介质 |
CN115421896A (zh) * | 2022-11-01 | 2022-12-02 | 联通智网科技股份有限公司 | 数据采集系统的节点调度方法、装置、服务器和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976247A (zh) * | 2010-09-30 | 2011-02-16 | 北京新媒传信科技有限公司 | Rss数据采集方法及系统 |
WO2016188282A1 (zh) * | 2015-05-25 | 2016-12-01 | 阿里巴巴集团控股有限公司 | 一种消息处理方法、装置及系统 |
CN107124522A (zh) * | 2017-04-18 | 2017-09-01 | 北京思特奇信息技术股份有限公司 | 一种分布式话单采集方法及系统 |
-
2017
- 2017-09-07 CN CN201710802198.9A patent/CN107612842B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976247A (zh) * | 2010-09-30 | 2011-02-16 | 北京新媒传信科技有限公司 | Rss数据采集方法及系统 |
WO2016188282A1 (zh) * | 2015-05-25 | 2016-12-01 | 阿里巴巴集团控股有限公司 | 一种消息处理方法、装置及系统 |
CN107124522A (zh) * | 2017-04-18 | 2017-09-01 | 北京思特奇信息技术股份有限公司 | 一种分布式话单采集方法及系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647082A (zh) * | 2018-04-13 | 2018-10-12 | 中国民航信息网络股份有限公司 | 基于令牌机制的任务处理方法、装置、设备及介质 |
CN108614877A (zh) * | 2018-04-27 | 2018-10-02 | 携程商旅信息服务(上海)有限公司 | 基于令牌桶的数据复制过程的监控方法及系统 |
CN109194539A (zh) * | 2018-08-13 | 2019-01-11 | 中国平安人寿保险股份有限公司 | 数据管控方法、装置、计算机设备及存储介质 |
CN109194539B (zh) * | 2018-08-13 | 2022-01-28 | 中国平安人寿保险股份有限公司 | 数据管控方法、装置、计算机设备及存储介质 |
CN109587075A (zh) * | 2018-11-27 | 2019-04-05 | 联想(北京)有限公司 | 一种业务处理方法、装置、设备及存储介质 |
CN109587075B (zh) * | 2018-11-27 | 2023-07-21 | 联想(北京)有限公司 | 一种业务处理方法、装置、设备及存储介质 |
CN109766316A (zh) * | 2018-12-18 | 2019-05-17 | 深圳壹账通智能科技有限公司 | 文件获取方法、装置、计算机设备和存储介质 |
CN112564968A (zh) * | 2020-12-03 | 2021-03-26 | 腾讯科技(深圳)有限公司 | 故障处理方法、装置及存储介质 |
CN112564968B (zh) * | 2020-12-03 | 2022-03-29 | 深圳市腾讯计算机系统有限公司 | 故障处理方法、装置及存储介质 |
CN115421896A (zh) * | 2022-11-01 | 2022-12-02 | 联通智网科技股份有限公司 | 数据采集系统的节点调度方法、装置、服务器和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107612842B (zh) | 2020-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107612842A (zh) | 基于令牌管理的数据采集方法、系统、设备及存储介质 | |
US8171142B2 (en) | Data center inventory management using smart racks | |
CN103890714B (zh) | 涉及基于集群的资源池的主机感知资源管理的系统和方法 | |
CN109923534A (zh) | 对具有未提交事务的数据库记录的多版本并发控制 | |
WO2007020118A1 (en) | Cluster partition recovery using application state-based priority determination to award a quorum | |
CN107769938A (zh) | 一种Openstack平台支持多网络区域的系统和方法 | |
CN104113596A (zh) | 一种私有云的云监控系统及方法 | |
CN110163473A (zh) | 一种任务进度的监控方法及设备 | |
CN107547595A (zh) | 云资源调度系统、方法及装置 | |
CN107645410A (zh) | 一种基于OpenStack云平台的虚拟机管理系统及方法 | |
CN113542074B (zh) | 一种可视化管理kubernetes集群的东西向网络流量的方法及系统 | |
CN109981326A (zh) | 家庭宽带感知故障定位的方法及装置 | |
CN104182283B (zh) | 一种任务同步方法 | |
CN108199860A (zh) | 一种告警处理方法及网络设备 | |
CN108123987A (zh) | 从云计算系统中确定主调度器的方法及装置 | |
CN105491079B (zh) | 云计算环境中调整应用所需资源的方法及装置 | |
CN103580899B (zh) | 事件日志管理方法、系统、云服务客户端及虚拟化平台 | |
CN102281331A (zh) | 一种用于工业现场的远程监控系统及其监控方法 | |
CN105430052B (zh) | 一种用于集群系统的仲裁方法和装置 | |
CN110175070A (zh) | 分布式数据库的管理方法、装置、系统、介质及电子设备 | |
CN105162639A (zh) | 一种kvm下的虚拟网络故障定位装置 | |
CN108733477A (zh) | 数据集群化处理的方法、装置及设备 | |
DE102020101084A1 (de) | Verbesserte sicherheit für mehrknoten-rechenplattform | |
CN106790354A (zh) | 一种防数据拥堵的通信方法及其装置 | |
KR102422577B1 (ko) | It 자산에 대응되는 환경정보를 등록하고 관리하는 사용자 인터페이스를 제공하는 방법 및 이를 이용한 관리 서버 |
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 |