CN111104233A - 数据采集方法、装置、计算机设备及计算机可读存储介质 - Google Patents
数据采集方法、装置、计算机设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111104233A CN111104233A CN201911146802.2A CN201911146802A CN111104233A CN 111104233 A CN111104233 A CN 111104233A CN 201911146802 A CN201911146802 A CN 201911146802A CN 111104233 A CN111104233 A CN 111104233A
- Authority
- CN
- China
- Prior art keywords
- data
- target system
- preset
- memory
- data acquisition
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Debugging And Monitoring (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明实施例提供了一种数据采集方法、装置、计算机设备及计算机可读存储介质。属于数据采集技术领域,通过获取外部数据源的数据,将数据存入内存中,判断数据接收方所对应的目标***是否满足预设存活条件,若满足预设存活条件,将数据转发至目标***,若不满足预设存活条件,将数据转发至预设存储器进行暂存,待后续目标***可用时,将数据进行转发,以实现数据采集。通过在判断目标***不可用时,将数据转发至预设存储器进行暂存,待后续目标***可用时将数据转发至目标***的方式,能够在保证数据高性能采集的情况下,实现高可用性,尤其对于大数据等海量数据的采集,提高了整个数据采集链路的高性能、高可用性及稳定性。
Description
技术领域
本发明涉及数据采集技术领域,尤其涉及一种数据采集方法、装置、计算机设备及计算机可读存储介质。
背景技术
在传统的数据采集中,例如尤其大数据等海量数据的采集方案中,核心组件包括实时采集器,实时采集器包括数据读取组件及数据发送组件,数据发送组件负责将数据发送到目标***,例如文件***、NoSql数据库以及消息队列等数据接收方各自所对应的目标***。一旦目标***不可用,那么数据发送组件就会找不到发送目标,从而导致实时采集器处于不可用,会使得整个采集链路的数据挤压、丢失以及不可用。因此,传统技术中,数据采集链路的实时采集器不能实现真正的高可用。
发明内容
本发明实施例提供了一种数据采集方法、装置、计算机设备及计算机可读存储介质,能够解决传统技术中实时采集器高可用性较低的问题。
第一方面,本发明实施例提供了一种数据采集方法,包括:获取外部数据源的数据,并将所述数据存入内存中;判断数据接收方所对应的目标***是否满足预设存活条件,所述目标***指数据采集***中包含的接收所采集的数据的预设组成部分,所述目标***存活指所述目标***处于正常接收数据的状态;若所述目标***满足所述预设存活条件,从所述内存中读取所述数据,并将所述数据转发至所述目标***,以实现所述数据采集;若所述目标***不满足所述预设存活条件,从所述内存中读取所述数据,并将所述数据转发至预设存储器进行暂存,待后续所述目标***可用时,将所述数据转发至所述目标***,以实现所述数据采集。
第二方面,本发明实施例还提供了一种数据采集装置,包括:获取单元,用于获取外部数据源的数据,并将所述数据存入内存中;第一判断单元,用于判断数据接收方所对应的目标***是否满足预设存活条件,所述目标***指数据采集***中包含的接收所采集的数据的预设组成部分,所述目标***存活指所述目标***处于正常接收数据的状态;第一转发单元,用于若所述目标***满足所述预设存活条件,从所述内存中读取所述数据,并将所述数据转发至所述目标***,以实现所述数据采集;暂存单元,用于若所述目标***不满足所述预设存活条件,从所述内存中读取所述数据,并将所述数据转发至预设存储器进行暂存,待后续所述目标***可用时,将所述数据转发至所述目标***,以实现所述数据采集。
第三方面,本发明实施例还提供了一种计算机设备,其包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现所述数据采集方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器执行所述数据采集方法。
本发明实施例提供了一种数据采集方法、装置、计算机设备及计算机可读存储介质。本发明实施例实现数据采集时,通过获取外部数据源的数据,将所述数据存入内存中,判断数据接收方所对应的目标***是否满足预设存活条件,若所述目标***满足所述预设存活条件,从所述内存中读取所述数据,并将所述数据转发至所述目标***,以实现所述数据采集,若所述目标***不满足所述预设存活条件,从所述内存中读取所述数据,并将所述数据转发至预设存储器进行暂存,待后续所述目标***可用时,将所述数据转发至所述目标***,以实现所述数据采集。通过在判断目标***不可用时,数据实时采集器将所述数据转发至预设存储器进行暂存,待后续目标***可用时,将所述数据转发至所述目标***的方式,不会由于目标***不可用,导致实时采集器找不到发送目标而造成整个采集链路的数据挤压、丢失及不可用,由于读取的数据是存储在内存中,能够在保证数据高性能采集的情况下,实现高可用性,尤其对于大数据等海量数据的采集,提高了整个数据采集链路的高性能、高可用性及稳定性。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数据采集方法的一个流程示意图;
图2为本发明实施例提供的数据采集方法的一个应用环境架构示意图;
图3为本发明实施例提供的数据采集方法的另一个流程示意图;
图4为本发明实施例提供的数据采集装置的示意性框图;以及
图5为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
请参阅图1和图2,图1为本发明实施例提供的数据采集方法的一个示意性流程图,图2为本发明实施例提供的数据采集方法的一个应用环境架构示意图。如图1所示,该方法包括以下步骤S101-S104:
S101、获取外部数据源的数据,并将所述数据存入内存中。
具体地,在数据采集中,获取外部数据源的数据通常有两种方式,一种方式是主动去外部数据源读取,另一种是接收外部数据源发送过来的数据,即读取外部数据源的数据或者接收所述外部数据源发送的所述数据。在数据采集中,核心组件包括数据实时采集器,请参阅图2,如图2在所示,以读取外部数据源的数据为例,在本发明实施例中,数据实时采集器包括数据读取组件(即Reader组件)、中间存储组件(即Storage组件)及发送组件(即Sender组件),除了数据实时采集器,数据采集***中还包括预设存储器(例如磁盘文件),其中,Reader组件负责读取数据,读取数据的方式可以为读取文件、读取消息队列中的数据等,并写入Storage组件中,Storage采用内存队列存储数据。数据实时采集器按照一定周期去外部数据源读取数据,读取到数据之后存到内存队列中,即读取外部数据源的数据,并将所述数据存入内存中,由于数据实时采集器读取的数据存入了内存队列中,尤其对于大数据等海量数据的采集,能够保证数据的高性能。
S102、判断数据接收方所对应的目标***是否满足预设存活条件,所述目标***指数据采集***中包含的接收所采集的数据的预设组成部分,所述目标***存活指所述目标***处于正常接收数据的状态。
具体地,数据实时采集器通过发送组件(即Sender组件)与数据接收方所对应的目标***,例如数据采集***中的下游***,进行确认,以判断所述目标***是否满足预设存活条件,从而判断所述目标***是否存活,即判断所述目标***是否处于正常连接状态而能够正常接收数据。所述目标***存活指所述目标***处于正常接收数据的状态,其中,所述目标***指数据采集***中包含的接收所采集的数据的预设组成部分,例如,所述目标***包括文件***、NoSql数据库以及消息队列等各个数据接收方。
S103、若所述目标***满足所述预设存活条件,从所述内存中读取所述数据,并将所述数据转发至所述目标***,以实现所述数据采集。
具体地,若数据实时采集器判断所述目标***满足所述预设存活条件,也即判断所述目标***能够正常接收数据,从所述内存中读取所述数据,并将所述数据转发至所述目标***,以实现所述数据采集。请继续参阅图2,如图2所示,数据实时采集器读取的外部数据经过黑线所对应描述的路径1转发至所述目标***,以实现所述数据采集,尤其对于大数据等海量数据的采集,由于所述数据是存储在内存中,从而能够实现数据实时采集器对数据采集处理时的高性能。
S104、若所述目标***不满足所述预设存活条件,从所述内存中读取所述数据,并将所述数据转发至预设存储器进行暂存,待后续所述目标***可用时,将所述数据转发至所述目标***,以实现所述数据采集。
具体地,为了保证数据实时采集器的高性能,Storage组件将数据存储在内存队列当中,若Sender组件不及时把数据发送出去,内存会由于数据过多而撑爆,导致内存溢出,所以数据实时采集器一旦发现目标***不可用,Sender组件会将从内存中获取的数据写入预设存储器中,例如磁盘文件当中,并将数据实时采集器中Sender组件的当前状态切换为目标***不可用,即若数据实时采集器判断所述目标***不满足所述预设存活条件,也即判断所述目标***不能够正常接收数据,从所述内存中读取所述数据,并将所述数据转发至预设存储器进行暂存,待后续目标***可用时,将所述数据转发至所述目标***以实现数据采集。请继续参阅图2,如图2所示,数据实时采集器判断所述目标***不满足所述预设存活条件,将读取的外部数据经过黑线所描述的路径1至数据发送组件后,由数据发送组件经过虚线所对应描述的路径2转发至预设存储器(例如磁盘文件)进行暂存,待后续目标***可用时,将所述数据经过点线所对应描述的路径3(1)从预设存储器中转发至所述目标***,以实现所述数据采集,从而实现数据实时采集器的高可用。
由于一般情况下大数据实时采集方案中,实时采集器不能在保证高性能的前提下,同时保证数据的零丢失,可以选择将采集的数据缓存在内存当中或者落地到磁盘,如果数据缓存在内存中,可以保证数据采集传输的高性能,但是一旦遇到目标***不可用的情况就会出现采集器出错从而导致数据丢失,而如果选择数据落地到本地磁盘中,这样可以保证程序出错或者服务器宕机时数据不丢失,但是一旦将数据落地到磁盘中,势必导致性能的下降。在本发明实施例中,通过将数据缓存在内存并结合磁盘所对应的预设存储器,在目标***能正常接收数据时,通过缓存在内存中保证数据采集传输的高性能,而在目标***不能正常接收数据时,通过将数据暂存在预设存储器中进行暂存,可以保证数据采集传输的高可用,避免数据的丢失,从而实现数据采集传输的高性能和高可用。
本发明实施例实现数据采集时,通过获取外部数据源的数据,将所述数据存入内存中,判断数据接收方所对应的目标***是否满足预设存活条件,若所述目标***满足所述预设存活条件,从所述内存中读取所述数据,并将所述数据转发至所述目标***,以实现所述数据采集,若所述目标***不满足所述预设存活条件,从所述内存中读取所述数据,并将所述数据转发至预设存储器进行暂存,待后续所述目标***可用时,将所述数据转发至所述目标***,以实现所述数据采集。通过在判断目标***不可用时,数据实时采集器将所述数据转发至预设存储器进行暂存,待后续目标***可用时,将所述数据转发至所述目标***的方式,不会由于目标***不可用,导致实时采集器找不到发送目标而造成整个采集链路的数据挤压、丢失及不可用,由于读取的数据是存储在内存中,能够在保证数据高性能采集的情况下,实现高可用性,尤其对于大数据等海量数据的采集,提高了整个数据采集链路的高性能、高可用性及稳定性。
在一个实施例中,所述判断数据接收方所对应的目标***是否满足预设存活条件的步骤包括:
按照预设周期,通过心跳方式与数据接收方所对应的目标***进行确认以判断所述目标***是否存活;
若根据心跳反馈判断与所述目标***连接不正常,判定所述目标***未存活;
若判定所述目标***未存活,且与所述目标***进行确认的次数超过预设次数,判定所述目标***不满足所述预设存活条件。
其中,心跳机制是定时发送一个自定义的结构体(心跳包),让对方知道自己还活着,以确保连接的有效性的机制,例如,TCP协议中的心跳机制,TCP协议会向对方发一个带有ACK标志的空数据包(KeepAlive探针),对方在收到ACK包以后,如果连接一切正常,应该回复一个ACK;如果连接出现错误了(例如对方重启了,连接状态丢失),则应当回复一个RST;如果对方没有回复,服务器每隔多少时间再发ACK,如果连续多个包都被无视了,说明连接被断开了。
具体地,数据实时采集器中的数据发送组件会按照预设周期,通过心跳方式与数据接收方所对应的目标***进行确认以判断所述目标***是否存活,若根据心跳反馈判断与所述目标***连接正常,判定所述目标***存活,可以继续发送数据至目标***,以使所述目标***正常接收数据,若根据心跳反馈判断与所述目标***连接不正常,判定所述目标***未存活,所述目标***不能正常接收数据,进一步地,若判定所述目标***未存活,且与所述目标***进行确认的次数超过预设次数,判定所述目标***不满足所述预设存活条件,说明连接被断开了,不能向所述目标***发送数据。请继续参阅图2,Sender组件会周期性地跟目标***进行心跳确认,以判断所述目标***是否存活,在发送数据失败后,进行重试,重试n次后,还不能成功将所述数据发送至目标***,判定目标***不可用。通过反复确认,以确定所述目标***的状态,提高对所述目标***状态的判断的准确性。
请参阅图3,图3为本发明实施例提供的数据采集方法的另一个流程示意图。图3中步骤S301至步骤S304分别对应图1中的步骤S101至步骤S104,在此不再赘述。如图3所示,在该实施例中,所述从所述内存中读取所述数据,并将所述数据转发至预设存储器进行暂存的步骤之后,还包括:
S305、按照所述预设周期继续判断所述目标***是否满足所述预设存活条件;
S306、若所述目标***满足所述预设存活条件,从所述预设存储器中读取所述数据,并将所述数据发送至所述目标***,且启动将所述内存中包含的数据继续追加至所述预设存储器中。
具体地,数据实时采集器中的数据发送组件按照所述预设周期继续判断所述目标***是否满足所述预设存活条件,若所述目标***满足所述预设存活条件,从所述预设存储器(例如磁盘)中读取所述数据,并将所述数据发送至所述目标***,且启动将所述内存中包含的数据继续追加至所述预设存储器中,若所述目标***不满足所述预设存活条件,返回执行所述按照所述预设周期继续判断所述目标***是否满足所述预设存活条件的步骤,以继续对所述目标***的状态进行监控。请继续参阅图2,Sender组件会继续周期性地跟目标***发送心跳,尝试连接,如果发现目标***可用,将Sender组件的当前状态切换为目标***可用,Sender组件会由从内存中读取数据经路径2存储至预设存储器中,切换到从磁盘中读取磁盘文件中的数据,并经路径3(1)发送磁盘文件中的数据至所述目标***。由于此时Sender组件从磁盘文件中读取数据,并将读取的数据发送至所述目标***,而不从内存(即Storage组件)中读取数据,而同时内存中还在接收Reader组件从外部数据源实时读取的数据,为了避免内存会因为数据过多而撑爆了,导致内存溢出,启动追加组件(即Replicator)组件从内存中读取内存队列中的数据经路径3(2)追加至磁盘中,从而通过路径3(2)和3(1)所对应描述的数据采集流程实现数据采集,从而数据采集传输的高性能和高可用,若所述目标***仍然不满足所述预设存活条件,所述目标***仍然不可用,返回执行所述按照所述预设周期继续判断所述目标***是否满足所述预设存活条件的步骤,以继续对所述目标***的状态进行监控,直至所述目标***满足所述预设存活条件,或者所述数据采集***结束服务为止。
进一步地,所述方法还包括:保持预设大小的可用内存空间。
所述保持预设大小的可用内存空间的步骤包括:保持内存中的数据在可用内存的预设比例。
具体地,启动Replicator组件读取内存队列中的数据追加至预设存储器中时,保持内存中保留一定的空余内存,以避免内存溢出而导致数据损失,以保证数据的安全,例如保持内存中的数据在可用内存的90%中,从而在保证数据有序性的前提下,发送积压的暂存数据。
进一步地,所述将所述数据发送至所述目标***的步骤包括:
通过零拷贝方式将所述数据发送至所述目标***。
其中,零复制(英文为Zero-copy;也译零拷贝)技术是指计算机执行操作时,CPU不需要先将数据从某处内存复制到另一个特定区域。这种技术通常用于通过网络传输文件时节省CPU周期和内存带宽。
具体地,请继续参阅图2,若数据实时采集器中的Sender组件判断所述目标***可用,将Sender组件的当前状态切换目标***可用,Sender组件会切换到读取磁盘文件中的数据,并通过零拷贝技术高性能地发送数据到目标***,从而使从内存中追加至预设存储器中的数据的速度小于数据发送组件从预设存储器中读取数据的速度,提高Sender组件发送磁盘中的数据至所述目标***的效率,从而能将磁盘文件中积压的数据尽快转发完毕。
在一个实施例中,所述从所述预设存储器中读取所述数据,并将所述数据发送至所述目标***,且启动将所述内存中包含的数据继续追加至所述预设存储器中的步骤之后,还包括:
S307、判断所述预设存储器中包含的数据发送至所述目标***是否发送完毕;
S308、若所述预设存储器中包含的所述数据发送至所述目标***发送完毕,将从所述预设存储器中读取数据切换至从所述内存中读取数据,并将从所述内存中读取的所述数据转发至所述目标***。
具体地,实时采集器中的发送组件判断所述预设存储器中包含的数据发送至所述目标***是否发送完毕,若所述预设存储器中包含的所述数据发送至所述目标***发送完毕,将从所述预设存储器中读取数据切换至从所述内存中读取数据,并将从所述内存中读取的所述数据转发至所述目标***,尤其对于大数据等海量数据的采集,实现数据的高性能传输,若所述预设存储器中存储的所述数据发送至所述目标***未发送完毕,返回执行所述判断所述预设存储器中存储的数据发送至所述目标***是否发送完毕的步骤,以继续监控所述预设存储器中存储的数据的发送状态。请继续参阅图2,例如,启动Replicator组件读取内存队列中的数据追加到磁盘中,并且保持内存中的数据在可用内存的90%中,在保证数据有序性的前提下,高效地发送积压的数据,一旦磁盘文件中的数据读取发送完毕,那么将Sender组件从读取磁盘文件切换到读取内存数据,以继续通过路径1由内存中读取数据,实现数据实时采集器的高性能,实现数据的高性能传输。
需要说明的是,上述各个实施例所述的数据采集方法,可以根据需要将不同实施例中包含的技术特征重新进行组合,以获取组合后的实施方案,但都在本发明要求的保护范围之内。
请参阅图4,图4为本发明实施例提供的数据采集装置的示意性框图。对应于上述数据采集方法,本发明实施例还提供一种数据采集装置。如图4所示,该数据采集装置包括用于执行上述数据采集方法的单元,该装置可以被配置于服务器等计算机设备中。具体地,请参阅图4,该数据采集装置400包括获取单元401、第一判断单元402、第一转发单元403及暂存单元404。
其中,获取元401,用于获取外部数据源的数据,并将所述数据存入内存中;
第一判断单元402,用于判断数据接收方所对应的目标***是否满足预设存活条件,所述目标***指数据采集***中包含的接收所采集的数据的预设组成部分,所述目标***存活指所述目标***处于正常接收数据的状态;
第一转发单元403,用于若所述目标***满足所述预设存活条件,从所述内存中读取所述数据,并将所述数据转发至所述目标***,以实现所述数据采集;
暂存单元403,用于若所述目标***不满足所述预设存活条件,从所述内存中读取所述数据,并将所述数据转发至预设存储器进行暂存,待后续所述目标***可用时,将所述数据转发至所述目标***,以实现所述数据采集。
在一个实施例中,所述第一判断单元402包括:
判断子单元,用于按照预设周期,通过心跳方式与数据接收方所对应的目标***进行确认以判断所述目标***是否存活;
第一判定子单元,用于若根据心跳反馈判断与所述目标***连接不正常,判定所述目标***未存活;
第二判定子单元,用于若判定所述目标***未存活,且与所述目标***进行确认的次数超过预设次数,判定所述目标***不满足所述预设存活条件。
在一个实施例中,所述数据采集装置400还包括:
第二判断单元,用于按照所述预设周期继续判断所述目标***是否满足所述预设存活条件;
发送单元,用于若所述目标***满足所述预设存活条件,从所述预设存储器中读取所述数据,并将所述数据发送至所述目标***,且启动将所述内存中包含的数据继续追加至所述预设存储器中。
在一个实施例中,所述数据采集装置400还包括:
第三判断单元,用于判断所述预设存储器中包含的数据发送至所述目标***是否发送完毕;
切换单元,用于若所述预设存储器中包含的所述数据发送至所述目标***发送完毕,将从所述预设存储器中读取数据切换至从所述内存中读取数据,并将从所述内存中读取的所述数据转发至所述目标***。
在一个实施例中,所述第一转发单元403,具体用于通过零拷贝方式将所述数据发送至所述目标***。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述数据采集装置和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
同时,上述数据采集装置中各个单元的划分和连接方式仅用于举例说明,在其他实施例中,可将数据采集装置按照需要划分为不同的单元,也可将数据采集装置中各单元采取不同的连接顺序和方式,以完成上述数据采集装置的全部或部分功能。
上述数据采集装置可以实现为一种计算机程序的形式,该计算机程序可以在如图5所示的计算机设备上运行。
请参阅图5,图5是本发明实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是台式机电脑或者服务器等计算机设备,也可以是其他设备中的组件或者部件。
参阅图5,该计算机设备500包括通过***总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作***5031和计算机程序5032。该计算机程序5032被执行时,可使得处理器502执行一种上述数据采集方法。
该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种上述数据采集方法。
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图5中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图5所示实施例一致,在此不再赘述。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:获取外部数据源的数据,并将所述数据存入内存中;判断数据接收方所对应的目标***是否满足预设存活条件,所述目标***指数据采集***中包含的接收所采集的数据的预设组成部分,所述目标***存活指所述目标***处于正常接收数据的状态;若所述目标***满足所述预设存活条件,从所述内存中读取所述数据,并将所述数据转发至所述目标***,以实现所述数据采集;若所述目标***不满足所述预设存活条件,从所述内存中读取所述数据,并将所述数据转发至预设存储器进行暂存,待后续所述目标***可用时,将所述数据转发至所述目标***,以实现所述数据采集。
在一实施例中,所述处理器502在实现所述判断数据接收方所对应的目标***是否满足预设存活条件的步骤时,具体实现以下步骤:
按照预设周期,通过心跳方式与数据接收方所对应的目标***进行确认以判断所述目标***是否存活;
若根据心跳反馈判断与所述目标***连接不正常,判定所述目标***未存活;
若判定所述目标***未存活,且与所述目标***进行确认的次数超过预设次数,判定所述目标***不满足所述预设存活条件。
在一实施例中,所述处理器502在实现所述从所述内存中读取所述数据,并将所述数据转发至预设存储器进行暂存的步骤之后,还实现以下步骤:
按照所述预设周期继续判断所述目标***是否满足所述预设存活条件;
若所述目标***满足所述预设存活条件,从所述预设存储器中读取所述数据,并将所述数据发送至所述目标***,且启动将所述内存中包含的数据继续追加至所述预设存储器中。
在一实施例中,所述处理器502在实现所述从所述预设存储器中读取所述数据,并将所述数据发送至所述目标***,且启动将所述内存中包含的数据继续追加至所述预设存储器中的步骤之后,还实现以下步骤:
判断所述预设存储器中包含的数据发送至所述目标***是否发送完毕;
若所述预设存储器中包含的所述数据发送至所述目标***发送完毕,将从所述预设存储器中读取数据切换至从所述内存中读取数据,并将从所述内存中读取的所述数据转发至所述目标***。
在一实施例中,所述处理器502在实现所述将所述数据发送至所述目标***的步骤时,具体实现以下步骤:
通过零拷贝方式将所述数据发送至所述目标***。
应当理解,在本发明实施例中,处理器502可以是中央处理单元(CentralProcessingUnit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来完成,该计算机程序可存储于一计算机可读存储介质。该计算机程序被该计算机***中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时使处理器执行如下步骤:
一种计算机程序产品,当其在计算机上运行时,使得计算机执行以上各实施例中所描述的数据采集方法的步骤。
所述计算机可读存储介质可以是前述设备的内部存储单元,例如设备的硬盘或内存。所述计算机可读存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述存储介质为实体的、非瞬时性的存储介质,例如可以是U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、磁碟或者光盘等各种可以存储计算机程序的实体存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数据采集方法,其特征在于,包括:
获取外部数据源的数据,并将所述数据存入内存中;
判断数据接收方所对应的目标***是否满足预设存活条件,所述目标***指数据采集***中包含的接收所采集的数据的预设组成部分,所述目标***存活指所述目标***处于正常接收数据的状态;
若所述目标***满足所述预设存活条件,从所述内存中读取所述数据,并将所述数据转发至所述目标***,以实现所述数据采集;
若所述目标***不满足所述预设存活条件,从所述内存中读取所述数据,并将所述数据转发至预设存储器进行暂存,待后续所述目标***可用时,将所述数据转发至所述目标***,以实现所述数据采集。
2.根据权利要求1所述数据采集方法,其特征在于,所述判断数据接收方所对应的目标***是否满足预设存活条件的步骤包括:
按照预设周期,通过心跳方式与数据接收方所对应的目标***进行确认以判断所述目标***是否存活;
若根据心跳反馈判断与所述目标***连接不正常,判定所述目标***未存活;
若判定所述目标***未存活,且与所述目标***进行确认的次数超过预设次数,判定所述目标***不满足所述预设存活条件。
3.根据权利要求1或者2所述数据采集方法,其特征在于,所述从所述内存中读取所述数据,并将所述数据转发至预设存储器进行暂存的步骤之后,还包括:
按照所述预设周期继续判断所述目标***是否满足所述预设存活条件;
若所述目标***满足所述预设存活条件,从所述预设存储器中读取所述数据,并将所述数据发送至所述目标***,且启动将所述内存中包含的数据继续追加至所述预设存储器中。
4.根据权利要求3所述数据采集方法,其特征在于,所述从所述预设存储器中读取所述数据,并将所述数据发送至所述目标***,且启动将所述内存中包含的数据继续追加至所述预设存储器中的步骤之后,还包括:
判断所述预设存储器中包含的数据发送至所述目标***是否发送完毕;
若所述预设存储器中包含的所述数据发送至所述目标***发送完毕,将从所述预设存储器中读取数据切换至从所述内存中读取数据,并将从所述内存中读取的所述数据转发至所述目标***。
5.根据权利要求3所述数据采集方法,其特征在于,所述将所述数据发送至所述目标***的步骤包括:
通过零拷贝方式将所述数据发送至所述目标***。
6.一种数据采集装置,其特征在于,包括:
获取单元,用于获取外部数据源的数据,并将所述数据存入内存中;
第一判断单元,用于判断数据接收方所对应的目标***是否满足预设存活条件,所述目标***指数据采集***中包含的接收所采集的数据的预设组成部分,所述目标***存活指所述目标***处于正常接收数据的状态;
第一转发单元,用于若所述目标***满足所述预设存活条件,从所述内存中读取所述数据,并将所述数据转发至所述目标***,以实现所述数据采集;
暂存单元,用于若所述目标***不满足所述预设存活条件,从所述内存中读取所述数据,并将所述数据转发至预设存储器进行暂存,待后续所述目标***可用时,将所述数据转发至所述目标***,以实现所述数据采集。
7.根据权利要求6所述数据采集装置,其特征在于,所述第一判断单元包括:
判断子单元,用于按照预设周期,通过心跳方式与数据接收方所对应的目标***进行确认以判断所述目标***是否存活;
第一判定子单元,用于若根据心跳反馈判断与所述目标***连接不正常,判定所述目标***未存活;
第二判定子单元,用于若判定所述目标***未存活,且与所述目标***进行确认的次数超过预设次数,判定所述目标***不满足所述预设存活条件。
8.根据权利要求6或者7所述数据采集装置,其特征在于,所述海量数据采集装置还包括:
第二判断单元,用于按照所述预设周期继续判断所述目标***是否满足所述预设存活条件;
发送单元,用于若所述目标***满足所述预设存活条件,从所述预设存储器中读取所述数据,并将所述数据发送至所述目标***,且启动将所述内存中包含的数据继续追加至所述预设存储器中。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器以及与所述存储器相连的处理器;所述存储器用于存储计算机程序;所述处理器用于运行所述存储器中存储的计算机程序,以执行如权利要求1-5任一项所述数据采集方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器执行如权利要求1-5中任一项所述数据采集方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911146802.2A CN111104233B (zh) | 2019-11-21 | 2019-11-21 | 数据采集方法、装置、计算机设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911146802.2A CN111104233B (zh) | 2019-11-21 | 2019-11-21 | 数据采集方法、装置、计算机设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111104233A true CN111104233A (zh) | 2020-05-05 |
CN111104233B CN111104233B (zh) | 2023-09-26 |
Family
ID=70421674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911146802.2A Active CN111104233B (zh) | 2019-11-21 | 2019-11-21 | 数据采集方法、装置、计算机设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111104233B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113783939A (zh) * | 2021-08-20 | 2021-12-10 | 奇安信科技集团股份有限公司 | 文件传输方法、装置、电子设备及存储介质 |
CN116541448A (zh) * | 2023-05-10 | 2023-08-04 | 百应科技有限公司 | 基于SaaS的数据集成处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107797825A (zh) * | 2017-10-24 | 2018-03-13 | 努比亚技术有限公司 | 一种数据发送方法、终端及计算机可读存储介质 |
CN109739921A (zh) * | 2019-01-07 | 2019-05-10 | 北京云基数技术有限公司 | 一种大数据采集***和方法 |
CN209373598U (zh) * | 2019-02-21 | 2019-09-10 | 深圳市甲易科技有限公司 | 实时数据与外部数据关联处理*** |
CN110362450A (zh) * | 2019-07-16 | 2019-10-22 | 深圳市网心科技有限公司 | 一种日志数据采集方法、装置及计算机可读存储介质 |
-
2019
- 2019-11-21 CN CN201911146802.2A patent/CN111104233B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107797825A (zh) * | 2017-10-24 | 2018-03-13 | 努比亚技术有限公司 | 一种数据发送方法、终端及计算机可读存储介质 |
CN109739921A (zh) * | 2019-01-07 | 2019-05-10 | 北京云基数技术有限公司 | 一种大数据采集***和方法 |
CN209373598U (zh) * | 2019-02-21 | 2019-09-10 | 深圳市甲易科技有限公司 | 实时数据与外部数据关联处理*** |
CN110362450A (zh) * | 2019-07-16 | 2019-10-22 | 深圳市网心科技有限公司 | 一种日志数据采集方法、装置及计算机可读存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113783939A (zh) * | 2021-08-20 | 2021-12-10 | 奇安信科技集团股份有限公司 | 文件传输方法、装置、电子设备及存储介质 |
CN116541448A (zh) * | 2023-05-10 | 2023-08-04 | 百应科技有限公司 | 基于SaaS的数据集成处理方法及装置 |
CN116541448B (zh) * | 2023-05-10 | 2023-12-08 | 汉友科技有限公司 | 基于SaaS的数据集成处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111104233B (zh) | 2023-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109496401B (zh) | 一种业务接管方法、存储设备和业务接管装置 | |
CN111104233A (zh) | 数据采集方法、装置、计算机设备及计算机可读存储介质 | |
CN109962827B (zh) | 设备链路检测方法、装置、设备及可读存储介质 | |
CN109361625B (zh) | 核查转发表项的方法、装置和控制器 | |
CN112272291A (zh) | 视频存储方法、装置、管理设备及可读存储介质 | |
CN105487937A (zh) | 一种rdma实现方法和装置 | |
CN108418859B (zh) | 写数据的方法和装置 | |
CN111679925A (zh) | 数据库故障处理方法、装置、计算设备和存储介质 | |
CN110870286A (zh) | 容错处理的方法、装置和服务器 | |
CN112039835B (zh) | 自适应轮询时间估算方法、装置、设备及存储介质 | |
CN116670636A (zh) | 数据存取方法、装置和存储介质 | |
CN110445666B (zh) | 一种网络质量检测方法、装置及服务器 | |
CN106708881B (zh) | 基于网络文件***的交互方法和装置 | |
CN111970497A (zh) | 视频流处理方法、装置、sdn控制器及存储介质 | |
CN114095462B (zh) | 一种雷达处理机srio通信***的容错方法及*** | |
CN108121496B (zh) | 数据的存储方法、装置和*** | |
CN105389127B (zh) | 在存储***中传输消息的方法、装置及存储***、控制器 | |
CN114125064A (zh) | 设备定位可靠性保证方法、装置、计算机设备及存储介质 | |
CN115514698A (zh) | 协议计算方法、交换机、跨设备链路聚合***及存储介质 | |
CN111314432B (zh) | 一种报文处理方法及装置 | |
CN104967641B (zh) | 一种实现主备元服务器数据同步的方法及装置 | |
CN108874530B (zh) | 对报文转发设备的业务板进行扩容、缩容的方法和装置 | |
EP1988469A1 (en) | Error control device | |
US20210103549A1 (en) | Information processing system and information processing method | |
JP2008042562A (ja) | ゲートウェイ装置 |
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 |