一种支持大数据量的数据传输方法

文档序号:8365588阅读:233来源:国知局
一种支持大数据量的数据传输方法
【技术领域】
[0001]本发明涉及数据传输技术领域,具体地说是一种实用性强、支持大数据量的数据传输方法。
【背景技术】
[0002]企业的应用系统,比如ERP、CRM等,用户在客户端处理的数据量有时比较大,这些比较大的客户端数据需要传输到服务端进行处理或存储。传统的数据传输方式,一般采用一次性传输或者分批同步传输;支持的传输数据量比较小,而且传输性能比较差。一次性传输的方式,占用内存比较大,常出现内存溢出的问题;并且占用网络资源比较大。分批同步传输的方式,传输效率比较低,传输时间比较长。
[0003]针对这种问题,本专利提出了一种支持大数据量的数据传输方法。

【发明内容】

[0004]本发明的技术任务是针对以上不足之处,提供一种实用性强、支持大数据量的数据传输方法。
[0005]一种支持大数据量的数据传输方法,其具体实现过程为:
一、初始化并启动以下数据传输的各个执行步骤;
二、读取客户端数据,即逐条读取客户端的数据,并把数据按顺序发送到该步骤对应的消息队列中;
三、对读取的客户端数据进行序列化处理;
四、将序列化处理的数据进行传输;
五、服务端读取传输来的数据并进行反序列化处理;
上述步骤一至步骤四中,每个步骤对应一个线程,并行执行每个线程:即每个步骤配置一个消息队列,消息队列存储每个步骤的输出的数据。
[0006]所述步骤三的详细过程为:每隔一个时间周期,逐条从步骤二对应的消息队列中读取消息,读取的每个消息在后台进行序列化处理,并把序列化后的数据发送到该步骤三对应的消息队列中。
[0007]所述步骤三中对读取的消息进行序列化处理时,消息队列执行出队操作,即消息从步骤二对应的消息队列删除;每条数据序列化是在客户端后台并行处理的。
[0008]所述步骤四的详细过程为:每隔一个时间周期,逐条从步骤三对应的消息队列中读取消息,把读取后的数据放到内存中,当内存中的数据累加到η条时,把数据传输到服务端,并发送到该步骤四对应的消息队列,所述η为多I的自然数。
[0009]所述步骤五的详细过程为:每隔一个时间周期,逐条从步骤四对应的消息队列中读取消息,把读取后的数据反序列化,并把数据追加到目标数据结果集DataSet中。
[0010]本发明的一种支持大数据量的数据传输方法,具有以下优点:
本发明提出的一种支持大数据量的数据传输方法,通过分批并行传输的方式,可以支持大数据量的数据传输,并且提高了传输效率,传输时间短,占用内存小,避免出现内存溢出的问题,占用较小的网络资源即可,彻底解决客户端数据较大时无法有效传输到服务端的问题,实用性强,易于推广。
【附图说明】
[0011]附图1为本发明的客户端与服务端通讯的示意图。
[0012]附图2为数据传输流程示意图。
【具体实施方式】
[0013]下面结合附图和具体实施例对本发明作进一步说明。
[0014]本发明提供一种支持大数据量的数据传输方法,该方法使用消息队列技术进行分批并行数据传输,其具体实现过程为:
一、初始化并启动以下数据传输的各个执行步骤;
二、读取客户端数据,进一步说明,逐条读取客户端的数据,并把数据按顺序发送到该步骤对应的消息队列(以下简称SI 1-MQ)中;
三、对读取的客户端数据进行序列化处理;
四、将序列化处理的数据进行传输;
五、服务端读取传输来的数据并进行反序列化处理;
上述步骤一至步骤四中,每个步骤对应一个线程,并行执行每个线程:即每个步骤配置一个消息队列,消息队列存储每个步骤的输出的数据;为了控制内存占用,每个消息队列可以设置容量。
[0015]所述步骤三的详细过程为:每隔一个时间周期(时间周期可配置,默认设置为ls),逐条从Sll-MQ中读取消息,读取的每个消息在后台进行序列化处理,并把序列化后的数据发送到该步骤对应的消息队列(以下简称S12-MQ)中。读取消息时,消息队列执行出队操作,即消息从Sll-MQ删除;每条数据序列化是在客户端后台并行处理的。
[0016]所述步骤四的详细过程为:每隔一个时间周期(时间周期可配置,默认设置为ls),逐条从S12-MQ中读取消息,把读取后的数据放到内存中,当内存中的数据累加到η(η>=1,可根据使用场景设置η的大小)条时,把数据传输到服务端,并发送到该步骤对应的消息队列(以下简称S13-MQ)中。
[0017]所述步骤五的详细过程为:服务端反序列化数据。进一步说明,每隔一个时间周期(时间周期可配置,默认设置为ls),逐条从S13-MQ中读取消息,把读取后的数据反序列化,并把数据追加到目标数据结果集DataSet中。
[0018]实施例说明:
某CRM系统中,通过客户线索管理功能,把用户界面中编辑的客户线索数据保存到数据库。客户端与服务端交互方式如图1所示。
[0019]首先配置初始化并启动数据传输的各个步骤。系统把数据传输流程中的几个步骤分解为以下几个线程,且并行启动。
[0020]Tl:读取客户端数据;
T2:序列化客户端数据; T3:传输客户端数据;
T4:服务端反序列化数据。
[0021]然后,上述线程分别按照对应步骤的逻辑分别处理相应的数据,并把处理结果发送到对应的消息队列中。传输流程处理如图2所示。
[0022]在Tl线程中,逐条读取客户端的客户线索数据,并把数据按顺序发送到Sll-MQ中。
[0023]在T2线程中,每隔Is逐条从Sll-MQ中读取消息进行序列化处理,并把序列化后的数据发送到S12-MQ中。
[0024]在T3线程中,每隔Is逐条从S12-MQ中读取数据放到内存中,当内存中的数据累加到10条时,把数据传输到服务端,并发送到S13-MQ中。
[0025]在T4线程中,每隔Is逐条从S13-MQ中读取消息,把读取后的数据反序列化,并把数据追加到目标数据结果集DataSet中。
[0026]本发明的应用场景,主要针对把客户端处理的数据传输到应用服务端的场景;本发明仅介绍了结构化数据的传输,非结构化数据的传输也可以采用本发明的思想进行分解并行传输。
[0027]上述【具体实施方式】仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述【具体实施方式】,任何符合本发明的一种支持大数据量的数据传输方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。
【主权项】
1.一种支持大数据量的数据传输方法,其特征在于,其具体实现过程为: 一、初始化并启动以下数据传输的各个执行步骤; 二、读取客户端数据,即逐条读取客户端的数据,并把数据按顺序发送到该步骤对应的消息队列中; 三、对读取的客户端数据进行序列化处理; 四、将序列化处理的数据进行传输; 五、服务端读取传输来的数据并进行反序列化处理; 上述步骤一至步骤四中,每个步骤对应一个线程,并行执行每个线程:即每个步骤配置一个消息队列,消息队列存储每个步骤的输出的数据。
2.根据权利要求1所述的一种支持大数据量的数据传输方法,其特征在于,所述步骤三的详细过程为:每隔一个时间周期,逐条从步骤二对应的消息队列中读取消息,读取的每个消息在后台进行序列化处理,并把序列化后的数据发送到该步骤三对应的消息队列中。
3.根据权利要求2所述的一种支持大数据量的数据传输方法,其特征在于,所述步骤三中对读取的消息进行序列化处理时,消息队列执行出队操作,即消息从步骤二对应的消息队列删除;每条数据序列化是在客户端后台并行处理的。
4.根据权利要求1所述的一种支持大数据量的数据传输方法,其特征在于,所述步骤四的详细过程为:每隔一个时间周期,逐条从步骤三对应的消息队列中读取消息,把读取后的数据放到内存中,当内存中的数据累加到η条时,把数据传输到服务端,并发送到该步骤四对应的消息队列,所述η为多I的自然数。
5.根据权利要求1所述的一种支持大数据量的数据传输方法,其特征在于,所述步骤五的详细过程为:每隔一个时间周期,逐条从步骤四对应的消息队列中读取消息,把读取后的数据反序列化,并把数据追加到目标数据结果集DataSet中。
【专利摘要】本发明公开了一种支持大数据量的数据传输方法,其具体实现过程为:初始化并启动各执行步骤;读取客户端数据;序列化客户端数据;传输数据;服务端反序列化数据。该一种支持大数据量的数据传输方法与现有技术相比,通过分批并行传输的方式,可以支持大数据量的数据传输,并且提高了传输效率,传输时间短,占用内存小,避免出现内存溢出的问题,实用性强。
【IPC分类】H04L29-08
【公开号】CN104683472
【申请号】CN201510108020
【发明人】岳现国
【申请人】浪潮集团有限公司
【公开日】2015年6月3日
【申请日】2015年3月12日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1