一种海量数据的实时传输处理方法、服务器及处理系统的制作方法

文档序号:10616063阅读:808来源:国知局
一种海量数据的实时传输处理方法、服务器及处理系统的制作方法
【专利摘要】本发明公开了一种海量数据的实时传输处理方法、服务器及处理系统,其中,所述海量数据的实时传输处理方法,包括接收客户端的基于数据单向传输协议发送来的数据;将接收的数据写入消息中间件中进行缓存,来保证数据在传输过程中的完整性;启动消费线程组,消费线程组中的各个消费线程启动后均处于空闲等待任务状态;从消息中间件中取出数据,并转化成处理任务分配至消费线程组中的各个消费线程中进行处理;将每个消费线程处理任务完成后的结果数据保存至缓存队列中;启动工作线程组,从缓存队列中获取结果数据并批量存储至数据库中。
【专利说明】
一种海量数据的实时传输处理方法、服务器及处理系统
技术领域
[0001]本发明属于数据处理领域,尤其涉及一种海量数据的实时传输处理方法、服务器及处理系统。
【背景技术】
[0002]计算机和网络技术及智能终端的高速发展,数据以一种不可估量的量级高速增长。而如何接受并完整、快速、安全、有效地处理海量数据显得尤为重要。目前,国内的数据传输系统或产品都不能兼容完整、快速、安全、有效地处理海量数据这些特点。一般情况下,在保证数据完整性的前提下,数据却不能快速、安全地传输并保存至数据库中;如果兼容速度,那么又不能保障数据的完整性。
[0003]因此,目前亟需一种能够完整、快速、安全、有效地处理海量数据的海量数据的实时传输处理方法、服务器及处理系统来解决上述问题。

【发明内容】

[0004]为了解决现有技术的缺点,本发明提供一种海量数据的实时传输处理方法、服务器及处理系统。本发明通过数据单向传输、消息中间件、多线程及队列机制技术,解决了目前海量数据传输过程中普遍存在的完整与效率无法兼得的问题,亦保证了数据在整个传输过程中的安全问题。
[0005]为实现上述目的,本发明采用以下技术方案:
[0006]本发明提供了一种海量数据的实时传输处理方法,该方法包括:
[0007]接收客户端的基于数据单向传输协议发送来的数据;
[0008]将接收的数据写入消息中间件中进行缓存,来保证数据在传输过程中的完整性;
[0009]启动消费线程组,消费线程组中的各个消费线程启动后均处于空闲等待任务状态;
[0010]从消息中间件中取出数据,并转化成处理任务分配至消费线程组中的各个消费线程中进行处理;
[0011]将每个消费线程处理任务完成后的结果数据保存至缓存队列中;
[0012]启动工作线程组,从缓存队列中获取结果数据并批量存储至数据库中。
[0013]当每次消费线程组处理任务完成后,从消息中间件中取出数据,并转化成处理任务分配至消费线程组中的各个消费线程中进行处理。
[0014]在本发明的海量数据的实时传输处理方法中,客户端采用数据单向传输协议进行发送数据,在数据由客户端传输至内网即高密级端时,内网的数据不会泄露,从而保证数据的安全性。
[0015]本发明还将接收的数据写入消息中间件中进行缓存,这样保证了高并发数据在传输过程中的完整性,而且不同业务数据,消息中间件还可以按照不同的名称进行缓存,大大地提高了数据传输过程中的业务处理能力。
[0016]当每次消费线程组处理任务完成后且消息中间件中无数据时,消费线程组处于空闲等待任务状态。
[0017]在本发明的海量数据的实时传输处理方法中,调用相应接口将数据批量存储至不同数据库。
[0018]由于数据传输的最终目的是将数据进行存储,因此,通过配置和调用不同接口,则可将数据向一种或者多种数据库中批量写入,提高了数据传输协议的开发效率。
[0019]通过配置参数决定启动工作线程组中工作线程的数目。
[0020]启动各工作线程,各线程在队列上等待任务;就像一个工厂中有很多的工人,把任务放到一个队列中,那些工人就会自动的获取任务,每次处理任务完成后,再次在队列中等待新的任务。有任务时,取出任务进行处理;无任务时,空闲等待。每个任务只能被一个线程取出并处理。队列机制是解决多线程并行协同工作的可靠和高效的手段。
[0021]本发明还提供了一种用于海量数据的实时传输处理的服务器,包括:
[0022]数据接收模块,其被配置为接收客户端的基于数据单向传输协议发送来的数据;
[0023]数据写入模块,其被配置为将接收的数据写入消息中间件中进行缓存,来保证数据在传输过程中的完整性;
[0024]消费线程启动模块,其被配置为启动消费线程组,消费线程组中的各个消费线程启动后均处于空闲等待任务状态;
[0025]数据调取分配模块,其被配置为从消息中间件中取出数据,并转化成处理任务分配至消费线程组中的各个消费线程中进行处理;
[0026]数据列队缓存模块,其被配置为将每个消费线程处理任务完成后的结果数据保存至缓存队列中;
[0027]工作线程启动模块,其被配置为启动工作线程组,从缓存队列中获取结果数据并批量存储至数据库中。
[0028]在消费线程启动模块中,当每次消费线程组处理任务完成后且消息中间件中无数据时,消费线程组处于空闲等待任务状态。
[0029]所述用于海量数据的实时传输处理的服务器还包括接口调用模块,其被配置为调用相应接口将数据批量存储至不同数据库。
[0030]所述工作线程启动模块通过配置参数决定启动工作线程组中工作线程的数目。
[0031]所述工作线程启动模块还按照数据的规模大小以及所述服务器的处理能力进行调整启动工作线程组中工作线程的数目。
[0032]此外,本发明还提供了一种用于海量数据的实时传输处理系统,该处理系统包括上述用于海量数据的实时传输处理的服务器。
[0033]本发明的有益效果为:
[0034](I)在本发明的海量数据的实时传输处理方法中,客户端采用数据单向传输协议进行发送数据,在数据由客户端传输至内网即高密级端时,内网的数据不会泄露,从而保证数据的安全性;
[0035](2)本发明还将接收的数据写入消息中间件中进行缓存,这样保证了高并发数据在传输过程中的完整性,而且不同业务数据,消息中间件还可以按照不同的名称进行缓存,大大地提高了数据传输过程中的业务处理能力;
[0036](3)本发明还采用多线程模式,启动消费线程组接收处理任务并将每个消费线程处理任务完成后的结果数据保存至缓存队列中,以及启动工作线程组,从缓存队列中获取结果数据并批量存储至数据库中;结合列队机制,将数据处理后放入各任务队列当中和从队列中顺序读取数据进行批量存储,队列机制解决了多线程并行协同工作的可靠性和高效性;
[0037](4)本发明以多线程并行工作的方式代替传统的工作方式,并可通过配置文件调整最大的工作线程数限制;而且允许使用者根据实际数据的规模,调优参数,达到实际环境的最佳性能。
【附图说明】
[0038]图1是本发明的海量数据的实时传输处理方法的流程示意图;
[0039]图2是本发明的用于海量数据的实时传输处理的服务器的结构示意图。
【具体实施方式】
[0040]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0041]本发明实施例中提及的客户端可以包括个人电脑、平板电脑和智能手机。本发明实施例中的服务器可直接通过网络与客户端相互通信。
[0042]图1是本发明实施例中一种海量数据的实时传输处理方法的流程示意图,本实施例主要是从服务器一侧来描述,如图所示本实施例中的海量数据的实时传输处理方法,包括:
[0043]SlOl,接收客户端的基于数据单向传输协议发送来的数据;
[0044]具体实现中,客户端采用的数据单向传输协议(比如TFTP的单向文件传输、单向文件传输协议FLUTE传输),进行传送数据。这样使得数据在客户端传输至内网即高密级端时,内网的数据不会泄露,从而保证数据的安全性。
[0045]S102,将接收的数据写入消息中间件中进行缓存,来保证数据在传输过程中的完整性;
[0046]具体实现中,消息中间件以由LinkedIn开发的一个分布式的消息系统kafka为例:
[0047]通过kafka,可将高并发数据进行缓存,客户端可逐步进行消费,保证了数据在传输过程中的完整性。不同业务数据,又可以通过kafka中不同TOPIC名称进行缓存,大大地提高了此数据传输过程中的业务处理能力。
[0048]S103,启动消费线程组,消费线程组中的各个消费线程启动后均处于空闲等待任务状态;
[0049]具体实现中,当每次消费线程组处理任务完成后,从消息中间件中取出数据,并转化成处理任务分配至消费线程组中的各个消费线程中进行处理。
[0050]S104,从消息中间件中取出数据,并转化成处理任务分配至消费线程组中的各个消费线程中进行处理;
[0051]在此过载中,接收数据格式与存储时的格式存在不一致的情况,使用者可根据业务需求自行定义。
[0052]具体实现中,当每次消费线程组处理任务完成后且消息中间件中无数据时,消费线程组处于空闲等待任务状态。
[0053]S105,将每个消费线程处理任务完成后的结果数据保存至缓存队列中。
[0054]当每次消费线程组处理任务完成后,从消息中间件中取出数据,并转化成处理任务分配至消费线程组中的各个消费线程中进行处理。
[0055]S106,启动工作线程组,从缓存队列中获取结果数据并批量存储至数据库中。
[0056]在具体实现中,还调用相应接口将数据批量存储至不同数据库。
[0057]由于数据传输的最终目的是将数据进行存储,因此,通过配置和调用不同接口,则可将数据向一种或者多种数据库中批量写入,提高了数据传输协议的开发效率。
[0058]此外,本实施例还通过配置参数决定启动工作线程组中工作线程的数目。
[0059]启动各工作线程,各线程在队列上等待任务;就像一个工厂中有很多的工人,把任务放到一个队列中,那些工人就会自动的获取任务,每次处理任务完成后,再次在队列中等待新的任务。有任务时,取出任务进行处理;无任务时,空闲等待。每个任务只能被一个线程取出并处理。队列机制是解决多线程并行协同工作的可靠和高效的手段。
[0060]本实施例中,客户端采用数据单向传输协议进行发送数据,在数据由客户端传输至内网即高密级端时,内网的数据不会泄露,从而保证数据的安全性;
[0061]本实施例还采用多线程模式,启动消费线程组接收处理任务并将每个消费线程处理任务完成后的结果数据保存至缓存队列中,以及启动工作线程组,从缓存队列中获取结果数据并批量存储至数据库中;结合列队机制,将数据处理后放入各任务队列当中和从队列中顺序读取数据进行批量存储,队列机制解决了多线程并行协同工作的可靠性和高效性;
[0062]本实施例以多线程并行工作的方式代替传统的工作方式,并可通过配置文件调整最大的工作线程数限制;而且允许使用者根据实际数据的规模,调优参数,达到实际环境的最佳性能。
[0063]图2是本发明实施例中一种用于海量数据的实时传输处理的服务器的结构示意图,本发明实施例中提及的客户端可以包括个人电脑、平板电脑和智能手机。本发明实施例中的服务器可直接通过网络与客户端相互通信。
[0064]如图2所示本实施例中的用于海量数据的实时传输处理的服务器,包括数据接收模块、数据写入模块、消费线程启动模块、数据调取分配模块、数据列队缓存模块和工作线程启动模块这六大模块。
[0065]其中,数据接收模块,其被配置为接收客户端的基于数据单向传输协议发送来的数据。
[0066]客户端采用的数据单向传输协议(比如TFTP的单向文件传输、单向文件传输协议FLUTE传输),进行传送数据。这样使得数据在客户端传输至内网即高密级端时,内网的数据不会泄露,从而保证数据的安全性。
[0067]数据写入模块,其被配置为将接收的数据写入消息中间件中进行缓存,来保证数据在传输过程中的完整性。
[0068]具体实现中,消息中间件以由LinkedIn开发的一个分布式的消息系统kafka为例:
[0069]通过kafka,可将高并发数据进行缓存,客户端可逐步进行消费,保证了数据在传输过程中的完整性。不同业务数据,又可以通过kafka中不同TOPIC名称进行缓存,大大地提高了此数据传输过程中的业务处理能力。
[0070]消费线程启动模块,其被配置为启动消费线程组,消费线程组中的各个消费线程启动后均处于空闲等待任务状态。
[0071]具体实现中,当每次消费线程组处理任务完成后且消息中间件中无数据时,消费线程组处于空闲等待任务状态。
[0072]在消费线程启动模块中,当每次消费线程组处理任务完成后且消息中间件中无数据时,消费线程组处于空闲等待任务状态。
[0073]数据调取分配模块,其被配置为从消息中间件中取出数据,并转化成处理任务分配至消费线程组中的各个消费线程中进行处理。
[0074]数据列队缓存模块,其被配置为将每个消费线程处理任务完成后的结果数据保存至缓存队列中。
[0075]工作线程启动模块,其被配置为启动工作线程组,从缓存队列中获取结果数据并批量存储至数据库中。
[0076]本实施例中的用于海量数据的实时传输处理的服务器还包括接口调用模块,其被配置为调用相应接口将数据批量存储至不同数据库。
[0077]其中,工作线程启动模块通过配置参数决定启动工作线程组中工作线程的数目。
[0078]优选地,工作线程启动模块还按照数据的规模大小以及所述服务器的处理能力进行调整启动工作线程组中工作线程的数目。
[0079]本实施例中,客户端采用数据单向传输协议进行发送数据,在数据由客户端传输至内网即高密级端时,内网的数据不会泄露,从而保证数据的安全性;
[0080]本实施例还采用多线程模式,启动消费线程组接收处理任务并将每个消费线程处理任务完成后的结果数据保存至缓存队列中,以及启动工作线程组,从缓存队列中获取结果数据并批量存储至数据库中;结合列队机制,将数据处理后放入各任务队列当中和从队列中顺序读取数据进行批量存储,队列机制解决了多线程并行协同工作的可靠性和高效性;
[0081]本实施例以多线程并行工作的方式代替传统的工作方式,并可通过配置文件调整最大的工作线程数限制;而且允许使用者根据实际数据的规模,调优参数,达到实际环境的最佳性能。
[0082]此外,本发明还提供了一种用于海量数据的实时传输处理系统,该处理系统包括上述用于海量数据的实时传输处理的服务器。具体地该服务器的具体结构将不再累述。
[0083]本发明还提供了一种用于海量数据的实时传输处理系统,接收客户端采用数据单向传输协议进行发送数据,在数据由客户端传输至内网即高密级端时,内网的数据不会泄露,从而保证数据的安全性;
[0084]还将接收的数据写入消息中间件中进行缓存,这样保证了高并发数据在传输过程中的完整性,而且不同业务数据,消息中间件还可以按照不同的名称进行缓存,大大地提高了数据传输过程中的业务处理能力;
[0085]本发明还采用多线程模式,启动消费线程组接收处理任务并将每个消费线程处理任务完成后的结果数据保存至缓存队列中,以及启动工作线程组,从缓存队列中获取结果数据并批量存储至数据库中;结合列队机制,将数据处理后放入各任务队列当中和从队列中顺序读取数据进行批量存储,队列机制解决了多线程并行协同工作的可靠性和高效性;
[0086]本发明以多线程并行工作的方式代替传统的工作方式,并可通过配置文件调整最大的工作线程数限制;而且允许使用者根据实际数据的规模,调优参数,达到实际环境的最佳性能。
[0087]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
[0088]上述虽然结合附图对本发明的【具体实施方式】进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
【主权项】
1.一种海量数据的实时传输处理方法,其特征在于,包括: 接收客户端的基于数据单向传输协议发送来的数据; 将接收的数据写入消息中间件中进行缓存,来保证数据在传输过程中的完整性; 启动消费线程组,消费线程组中的各个消费线程启动后均处于空闲等待任务状态; 从消息中间件中取出数据,并转化成处理任务分配至消费线程组中的各个消费线程中进行处理; 将每个消费线程处理任务完成后的结果数据保存至缓存队列中; 启动工作线程组,从缓存队列中获取结果数据并批量存储至数据库中。2.如权利要求1所述的一种海量数据实时传输方法,其特征在于,当每次消费线程组处理任务完成后且消息中间件中无数据时,消费线程组处于空闲等待任务状态。3.如权利要求1所述的一种海量数据实时传输方法,其特征在于,调用相应接口将数据批量存储至不同数据库。4.如权利要求1所述的一种海量数据实时传输方法,其特征在于,通过配置参数决定启动工作线程组中工作线程的数目。5.—种用于海量数据的实时传输处理的服务器,其特征在于,包括: 数据接收模块,其被配置为接收客户端的基于数据单向传输协议发送来的数据; 数据写入模块,其被配置为将接收的数据写入消息中间件中进行缓存,来保证数据在传输过程中的完整性; 消费线程启动模块,其被配置为启动消费线程组,消费线程组中的各个消费线程启动后均处于空闲等待任务状态; 数据调取分配模块,其被配置为从消息中间件中取出数据,并转化成处理任务分配至消费线程组中的各个消费线程中进行处理; 数据列队缓存模块,其被配置为将每个消费线程处理任务完成后的结果数据保存至缓存队列中; 工作线程启动模块,其被配置为启动工作线程组,从缓存队列中获取结果数据并批量存储至数据库中。6.如权利要求5所述的一种用于海量数据的实时传输处理的服务器,其特征在于,在消费线程启动模块中,当每次消费线程组处理任务完成后且消息中间件中无数据时,消费线程组处于空闲等待任务状态。7.如权利要求5所述的一种用于海量数据的实时传输处理的服务器,其特征在于,所述用于海量数据的实时传输处理的服务器还包括接口调用模块,其被配置为调用相应接口将数据批量存储至不同数据库。8.如权利要求5所述的一种用于海量数据的实时传输处理的服务器,其特征在于,所述工作线程启动模块通过配置参数决定启动工作线程组中工作线程的数目。9.如权利要求8所述的一种用于海量数据的实时传输处理的服务器,其特征在于,所述工作线程启动模块还按照数据的规模大小以及所述服务器的处理能力进行调整启动工作线程组中工作线程的数目。10.—种用于海量数据的实时传输处理系统,其特征在于,该处理系统包括如权利要求5-9任一所述的用于海量数据的实时传输处理的服务器。
【文档编号】H04L29/08GK105978968SQ201610309434
【公开日】2016年9月28日
【申请日】2016年5月11日
【发明人】陈浩, 王可鑫, 段文良, 高军, 王恒
【申请人】山东合天智汇信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1