数据传输方法、装置和服务器的制造方法

文档序号:7822262阅读:242来源:国知局
数据传输方法、装置和服务器的制造方法
【专利摘要】本发明公开了一种数据传输方法、装置和服务器,主要涉及互联网【技术领域】,主要目的在于防止数据传输过程中丢失数据。方法包括:在第一服务器所处的地理位置,接收来自第一服务器的待发送至第二服务器的数据,第二服务器和第一服务器位于不同地理位置;将数据存放到预设的队列中;从队列中获取数据,并将数据发送到第二服务器;判断数据是否成功发送到第二服务器;在数据发送失败时,重新从队列中获取数据并进行发送。根据本发明的技术方案,可以有效地防止出现数据丢失的情况。
【专利说明】数据传输方法、装置和服务器

【技术领域】
[0001]本发明涉及互联网【技术领域】,具体而言,涉及一种数据传输方法、装置和服务器。

【背景技术】
[0002]通过互联网进行大量数据的传输,如何保证所传输数据的准确性是一个重要的课题。
[0003]比较常见的一个例子是:游戏厂商的服务器设置在北京机房,用于运行游戏程序;数据分析商的服务器设置在上海机房,用于对游戏数据进行分析;所以需要将北京机房服务器的游戏数据发送到上海机房服务器进行数据分析。北京与上海两地之间的公网网络如果出现了故障,就必然会造成大量数据传输丢失。而北京、上海两地的公网网络质量,并非游戏厂商或数据分析商可以进行掌控的,这就造成需要面临数据丢失的难题。


【发明内容】

[0004]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据传输方法、装置和服务器。
[0005]依据本发明的一个方面,提供了一种数据传输方法,其包括:在第一服务器所处的地理位置,接收来自所述第一服务器的待发送至第二服务器的数据,所述第二服务器和所述第一服务器位于不同地理位置;将所述数据存放到预设的队列中;从所述队列中获取所述数据,并将所述数据发送到所述第二服务器;判断所述数据是否成功发送到所述第二服务器;在所述数据发送失败时,重新从所述队列中获取所述数据并进行发送。
[0006]依据本发明的再一个方面,提供了一种数据传输装置,其包括:数据接收模块,用于在第一服务器所处的地理位置,接收来自所述第一服务器的待发送至第二服务器的数据,所述第二服务器和所述第一服务器位于不同地理位置;队列存放模块,用于将所述数据存放到预设的队列中;数据发送模块,用于从所述队列中获取所述数据,并将所述数据发送到所述第二服务器;判断模块,用于判断所述数据是否成功发送到所述第二服务器;在所述数据发送失败时,所述数据发送模块重新从所述队列中获取所述数据并进行发送。
[0007]依据本发明的再一个方面,提供了一种服务器,其包括:前述的数据传输装置。
[0008]根据以上技术方案,可知本发明的数据传输方法、装置和服务器至少具有以下优占.
[0009]根据本发明的技术方案中,在第一服务器所处的地理位置接收第一服务器的数据,由于地理位置相同所以数据传输可以不经过公网网络,所以可以保证接收的数据完全准确;将数据向第二服务器发送时,由于数据通过队列进行了缓存,所以即使数据没有成功发送到第二服务器,也可以从队列中获取数据重新进行发送,直至发送成功为止,可知本发明的技术方案可以有效地防止出现数据丢失的情况。
[0010]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。

【专利附图】

【附图说明】
[0011]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0012]图1示出了本发明的一个实施例的数据传输方法的流程图;
[0013]图2示出了本发明的一个实施例的数据传输方法的流程图;
[0014]图3示出了本发明的一个实施例的数据传输方法的流程图;
[0015]图4示出了本发明的一个实施例的数据传输方法的流程图;
[0016]图5示出了本发明的一个实施例的数据传输方法的流程图;
[0017]图6示出了本发明的一个实施例的数据传输装置的框图;
[0018]图7示出了本发明的一个实施例的数据传输装置的框图;
[0019]图8示出了本发明的一个实施例的数据传输装置的框图;
[0020]图9示出了本发明的一个实施例的服务器的框图。

【具体实施方式】
[0021]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0022]如图1所示,本发明的一个实施例中提供了一种数据传输方法,其包括:
[0023]步骤110,在第一服务器所处的地理位置,接收来自第一服务器的待发送至第二服务器的数据,第二服务器和第一服务器位于不同地理位置。在本实施例中,对地理位置的范围大小不进行限制,例如,是否是相同地理位置可以是:是否是相同机房,在同一机房内进行的数据传输可以不经过公网,即使实时传输数据也难以出现数据丢失的情况。
[0024]步骤120,将数据存放到预设的队列中。
[0025]步骤130,从队列中获取数据,并将数据发送到第二服务器。在本实施例中,根据前述内容可知,第一服务器和第二服务器可以位于不同的机房,导致需要通过公网来进行二者之间的数据传输。
[0026]步骤140,判断数据是否成功发送到第二服务器。
[0027]步骤150,在数据发送失败时,重新从队列中获取数据并进行发送。根据本实施例的技术方案,即使数据没有成功发送到第二服务器,也可以从队列中获取数据重新进行发送,直至发送成功为止,可知本发明的技术方案可以有效地防止出现数据丢失的情况。
[0028]根据图1,可以在游戏厂商的服务器(第一服务器)所在机房内,申请一台或几台游戏厂商日志中心机,并同时在厂商服务器和日志中心机上配置软件878108-叩,厂商服务器用作878108-118的客户端,日志中心机用作878108-118的服务器,通过来采集玩家的关键行为(充值、消耗元宝等)作为日志数据。并在日志中心机上通过程序实现日志中继器和日志发射器,其中日志中继器用于将日志数据存储到队列中,日志发射器用于将日志数据经过公网发送到另一机房的数据分析商的服务器(第二服务器如果公网传输失败,相应的日志记录仍会在队列中缓存,稍后再由日志发射器进行数据传输,直到数据传输成功。
[0029]本发明的一个实施例中提供了一种数据传输方法,其包括:
[0030]步骤110,在第一服务器所处的地理位置,接收来自第一服务器的待发送至第二服务器的数据,第二服务器和第一服务器位于不同地理位置。
[0031]步骤120,将数据存放到预设的队列中。
[0032]步骤130,从队列中获取数据,并将数据发送到第二服务器。在本实施例中,根据前述内容可知,第一服务器和第二服务器可以位于不同的机房,导致需要通过公网来进行二者之间的数据传输。
[0033]步骤140,判断数据是否成功发送到第二服务器。
[0034]步骤150,在数据发送失败时,重新从队列中获取数据并进行发送。
[0035]步骤160,在数据发送成功时,从队列中删除数据。根据本实施例的技术方案,及时对队列中的数据进行清除,使得队列中有空间来存放新的数据。
[0036]根据图1,结合前述内容,可知在日志数据成功发送到数据分析商的服务器(第二服务器)后,则在日志中心机(第一服务器)中,通过日志中继器来从队列中清除掉该数据。
[0037]如图2所示,本发明的一个实施例中提供了一种数据传输方法,其包括:
[0038]步骤210,在第一服务器所处的地理位置,接收来自第一服务器的待发送至第二服务器的数据,第二服务器和第一服务器位于不同地理位置。
[0039]步骤220,将数据存放到预设的队列中。
[0040]步骤230,从队列中获取数据,并将数据发送到第二服务器。在本实施例中,根据前述内容可知,第一服务器和第二服务器可以位于不同的机房,导致需要通过公网来进行二者之间的数据传输。
[0041]步骤240,接收第二服务器发送的用于通知数据发送成功的消息。在本实施例中,对消息的内容不进行限制,只要是预设的用于指示已发送成功的内容即可。
[0042]步骤250,如果自发送数据后的预设时间段内没有接收到消息,判断数据发送失败,并重新从队列中获取数据并进行发送。
[0043]步骤260,如果自发送数据后的预设时间段内接收到消息,判断数据发送成功,并从队列中删除数据。根据本实施例的技术方案,基于在预定时间段内是否收到消息,可以准确地判断数据是否发送成功。
[0044]根据图2,同样以游戏厂商服务器(第一服务器)和数据分析商服务器(第二服务器)之间的玩家行为日志传输为例,日志数据从游戏厂商服务器发出后,如果在1分钟(预设时间段)内没收到数据分析商服务器返回的包含特定字符的信息,则表示发送没有成功,需要从队列中取得数据并重新发送。
[0045]如图3所示,本发明的一个实施例中提供了一种数据传输方法,其包括:
[0046]步骤310,在第一服务器所处的地理位置,接收来自第一服务器的待发送至第二服务器的数据,第二服务器和第一服务器位于不同地理位置。
[0047]步骤320,根据待使用数据的计算任务,从多个队列中选择存放数据的队列。队列的数量为多个,多个队列用于存放待发送至第二服务器上进行多种计算任务的数据。在本实施例中,对计算任务的类型不进行限制,其可以由第二服务器的所有者自动识别。
[0048]步骤330,从队列中获取数据,并将数据发送到第二服务器。在本实施例中,根据前述内容可知,第一服务器和第二服务器可以位于不同的机房,导致需要通过公网来进行二者之间的数据传输。
[0049]步骤340,判断数据是否成功发送到第二服务器。
[0050]步骤350,在数据发送失败时,重新从队列中获取数据并进行发送。
[0051]步骤360,在数据发送成功时,从队列中删除数据。根据本实施例的技术方案,多个队列与多个计算任务相对应,可以使得队列的数据发送到第二服务器时可以及时用于相应计算任务的计算。
[0052]根据图3,以游戏厂商服务器(第一服务器)和数据分析商服务器(第二服务器)之间的玩家行为日志传输为例,假设存在对应于玩家消费金额计算任务的队列1、对应于玩家上线时间分析任务的队列2,则如果从游戏厂商服务器获取的数据为某玩家的上线时间,则存放到队列2中,如果从游戏厂商服务器获取的数据为某玩家购买了游戏道具的金额,则存放到队列1中。
[0053]本发明的一个实施例中提供了一种数据传输方法,其包括:
[0054]步骤310,在第一服务器所处的地理位置,接收来自第一服务器的待发送至第二服务器的数据,第二服务器和第一服务器位于不同地理位置。
[0055]步骤311,根据数据的属性,识别待使用数据的计算任务。在本实施例中,对于数据的属性不进行限制,其可以是数据的类型、字段、数据量的一种或多种。
[0056]步骤320,根据待使用数据的计算任务,从多个队列中选择存放数据的队列。队列的数量为多个,多个队列用于存放待发送至第二服务器上进行多种计算任务的数据。在本实施例中,对计算任务的类型不进行限制,其可以由第二服务器的所有者自动识别。
[0057]步骤330,从队列中获取数据,并将数据发送到第二服务器。在本实施例中,根据前述内容可知,第一服务器和第二服务器可以位于不同的机房,导致需要通过公网来进行二者之间的数据传输。
[0058]步骤340,判断数据是否成功发送到第二服务器。
[0059]步骤350,在数据发送失败时,重新从队列中获取数据并进行发送。
[0060]步骤360,在数据发送成功时,从队列中删除数据。根据本实施例的技术方案,不同的计算任务通常需求不同属性的数据,所以根据数据的属性识别出对应的计算任务,以便于数据存放到相应的队列中。
[0061]根据图3,以游戏厂商服务器(第一服务器)和数据分析商服务器(第二服务器)之间的玩家行为日志传输为例,如果从游戏厂商服务器获取的数据为时间类型(属性),则可判断该数据为用户的上线时间,该数据可存放到对应于玩家上线时间分析任务的队列中;如果从游戏厂商服务器获取的数据包含“人民币字段),则可判断该数据为用户购买道具消费的金额,该数据可存放到对应于用户消费金额计算任务的队列中。
[0062]如图4所示,本发明的一个实施例中提供了一种数据传输方法,其包括:
[0063]步骤401,第一服务器从与第一服务器位于相同地理位置的包含多个第三服务器的集群接收数据。在本实施例中,第三服务器集群的数量不做限制,第三服务器集群的数量可以任意增减,但第二服务器始终从第一服务器获取数据,所以第二服务器与第一服务器之间的数据传输配置不需改变。
[0064]步骤410,在第一服务器所处的地理位置,接收来自第一服务器的待发送至第二服务器的数据,第二服务器和第一服务器位于不同地理位置。
[0065]步骤420,将数据存放到预设的队列中。
[0066]步骤430,从队列中获取数据,并将数据发送到第二服务器。在本实施例中,根据前述内容可知,第一服务器和第二服务器可以位于不同的机房,导致需要通过公网来进行二者之间的数据传输。
[0067]步骤440,判断数据是否成功发送到第二服务器。
[0068]步骤450,在数据发送失败时,重新从队列中获取数据并进行发送。
[0069]步骤460,在数据发送成功时,从队列中删除数据。
[0070]根据图4,游戏厂商配置了多个服务器来运行游戏程序(第三服务器),其所有的运行游戏程序的服务器都连接到同一服务器(第一服务器)上并传输数据,同时该服务器的数据按预设的配置信息传输到进行数据分析的服务器(第二服务器)上。无论第三服务器数量增减,由于第二服务器只与第一服务器进行连接,所以不需要改变配置信息,这有利于随时调整服务器的数量。
[0071]如图5所示,本发明的一个实施例中提供了一种数据传输方法,其包括:
[0072]步骤510,实时接收第一服务器发送的数据,并记录在预设的日志文件中。
[0073]步骤520,从日志文件中提取数据,并存放到预设队列中。
[0074]步骤530,从队列中获取数据,并将数据发送到第二服务器。在本实施例中,根据前述内容可知,第一服务器和第二服务器可以位于不同的机房,导致需要通过公网来进行二者之间的数据传输。
[0075]步骤540,判断数据是否成功发送到第二服务器。
[0076]步骤550,在数据发送失败时,重新从队列中获取数据并进行发送。
[0077]步骤560,在数据发送成功时,从队列中删除数据。根据本实施例的技术方案,通过记录日志文件的方式有利于实时接收并保存数据,以及延时从日志文件中提取数据并存放到队列中,既保证数据可以及时接收,又不会影响数据的发送。
[0078]如图6所示,本发明的一个实施例中提供了一种数据传输装置,其包括:
[0079]数据接收模块610,在第一服务器所处的地理位置,接收来自第一服务器的待发送至第二服务器的数据,第二服务器和第一服务器位于不同地理位置。在本实施例中,对地理位置的范围大小不进行限制,例如,是否是相同地理位置可以是:是否是相同机房,在同一机房内进行的数据传输可以不经过公网,即使实时传输数据也难以出现数据丢失的情况。
[0080]队列存放模块620,将数据存放到预设的队列中。
[0081]数据发送模块630,从队列中获取数据,并将数据发送到第二服务器。在本实施例中,根据前述内容可知,第一服务器和第二服务器可以位于不同的机房,导致需要通过公网来进行二者之间的数据传输。
[0082]判断模块640,判断数据是否成功发送到第二服务器。
[0083]在数据发送失败时,数据发送模块630重新从队列中获取数据并进行发送。根据本实施例的技术方案,即使数据没有成功发送到第二服务器,也可以从队列中获取数据重新进行发送,直至发送成功为止,可知本发明的技术方案可以有效地防止出现数据丢失的情况。
[0084]根据图6,可以在游戏厂商的服务器(第一服务器)所在机房内,申请一台或几台游戏厂商日志中心机,并同时在厂商服务器和日志中心机上配置软件878108-叩,厂商服务器用作878108-118的客户端,日志中心机用作878108-118的服务器,通过来采集玩家的关键行为(充值、消耗元宝等)作为日志数据。并在日志中心机上通过程序实现日志中继器和日志发射器,其中日志中继器用于将日志数据存储到队列中,日志发射器用于将日志数据经过公网发送到另一机房的数据分析商的服务器(第二服务器如果公网传输失败,相应的日志记录仍会在队列中缓存,稍后再由日志发射器进行数据传输,直到数据传输成功。
[0085]如图7所示,本发明的一个实施例中提供了一种数据传输装置,其包括:
[0086]数据接收模块710,在第一服务器所处的地理位置,接收来自第一服务器的待发送至第二服务器的数据,第二服务器和第一服务器位于不同地理位置。
[0087]队列存放模块720,将数据存放到预设的队列中。
[0088]数据发送模块730,从队列中获取数据,并将数据发送到第二服务器。在本实施例中,根据前述内容可知,第一服务器和第二服务器可以位于不同的机房,导致需要通过公网来进行二者之间的数据传输。
[0089]判断模块740,判断数据是否成功发送到第二服务器。
[0090]在数据发送失败时,数据发送模块730重新从队列中获取数据并进行发送。
[0091]数据删除模块750,在数据发送成功时,从队列中删除数据。根据本实施例的技术方案,及时对队列中的数据进行清除,使得队列中有空间来存放新的数据。
[0092]根据图7,结合前述内容,可知在日志数据成功发送到数据分析商的服务器(第二服务器)后,则在日志中心机(第一服务器)中,通过日志中继器来从队列中清除掉该数据。
[0093]本发明的一个实施例中提供了一种数据传输装置,其包括:
[0094]数据接收模块710,在第一服务器所处的地理位置,接收来自第一服务器的待发送至第二服务器的数据,第二服务器和第一服务器位于不同地理位置。
[0095]队列存放模块720,将数据存放到预设的队列中。
[0096]数据发送模块730,从队列中获取数据,并将数据发送到第二服务器。在本实施例中,根据前述内容可知,第一服务器和第二服务器可以位于不同的机房,导致需要通过公网来进行二者之间的数据传输。
[0097]判断模块740,接收第二服务器发送的用于通知数据发送成功的消息。在本实施例中,对消息的内容不进行限制,只要是预设的用于指示已发送成功的内容即可。
[0098]如果自发送数据后的预设时间段内没有接收到消息,判断模块740判断数据发送失败,数据发送模块730重新从队列中获取数据并进行发送。
[0099]如果自发送数据后的预设时间段内接收到消息,判断模块740判断数据发送成功,数据删除模块750从队列中删除数据。根据本实施例的技术方案,基于在预定时间段内是否收到消息,可以准确地判断数据是否发送成功。
[0100]根据图7,同样以游戏厂商服务器(第一服务器)和数据分析商服务器(第二服务器)之间的玩家行为日志传输为例,日志数据从游戏厂商服务器发出后,如果在1分钟(预设时间段)内没收到数据分析商服务器返回的包含特定字符的信息,则表示发送没有成功,需要从队列中取得数据并重新发送。
[0101]本发明的一个实施例中提供了一种数据传输装置,其包括:
[0102]数据接收模块710,在第一服务器所处的地理位置,接收来自第一服务器的待发送至第二服务器的数据,第二服务器和第一服务器位于不同地理位置。
[0103]队列存放模块720,根据待使用数据的计算任务,从多个队列中选择存放数据的队列。队列的数量为多个,多个队列用于存放待发送至第二服务器上进行多种计算任务的数据。在本实施例中,对计算任务的类型不进行限制,其可以由第二服务器的所有者自动识别。
[0104]数据发送模块730,从队列中获取数据,并将数据发送到第二服务器。在本实施例中,根据前述内容可知,第一服务器和第二服务器可以位于不同的机房,导致需要通过公网来进行二者之间的数据传输。
[0105]判断模块740,判断数据是否成功发送到第二服务器。
[0106]在数据发送失败时,数据发送模块730重新从队列中获取数据并进行发送。
[0107]在数据发送成功时,数据删除模块740从队列中删除数据。根据本实施例的技术方案,多个队列与多个计算任务相对应,可以使得队列的数据发送到第二服务器时可以及时用于相应计算任务的计算。
[0108]根据图7,以游戏厂商服务器(第一服务器)和数据分析商服务器(第二服务器)之间的玩家行为日志传输为例,假设存在对应于玩家消费金额计算任务的队列1、对应于玩家上线时间分析任务的队列2,则如果从游戏厂商服务器获取的数据为某玩家的上线时间,则存放到队列2中,如果从游戏厂商服务器获取的数据为某玩家购买了游戏道具的金额,则存放到队列1中。
[0109]如图8所示,本发明的一个实施例中提供了一种数据传输装置,其包括:
[0110]数据接收模块810,在第一服务器所处的地理位置,接收来自第一服务器的待发送至第二服务器的数据,第二服务器和第一服务器位于不同地理位置。
[0111]计算任务识别模块820,根据数据的属性,识别待使用数据的计算任务。在本实施例中,对于数据的属性不进行限制,其可以是数据的类型、字段、数据量的一种或多种。
[0112]队列存放模块830,根据待使用数据的计算任务,从多个队列中选择存放数据的队列。队列的数量为多个,多个队列用于存放待发送至第二服务器上进行多种计算任务的数据。在本实施例中,对计算任务的类型不进行限制,其可以由第二服务器的所有者自动识别。
[0113]数据发送模块840,从队列中获取数据,并将数据发送到第二服务器。在本实施例中,根据前述内容可知,第一服务器和第二服务器可以位于不同的机房,导致需要通过公网来进行二者之间的数据传输。
[0114]判断模块850,判断数据是否成功发送到第二服务器。
[0115]在数据发送失败时,数据发送模块840重新从队列中获取数据并进行发送。
[0116]数据删除模块860,在数据发送成功时,从队列中删除数据。根据本实施例的技术方案,不同的计算任务通常需求不同属性的数据,所以根据数据的属性识别出对应的计算任务,以便于数据存放到相应的队列中。
[0117]根据图8,以游戏厂商服务器(第一服务器)和数据分析商服务器(第二服务器)之间的玩家行为日志传输为例,如果从游戏厂商服务器获取的数据为时间类型(属性),则可判断该数据为用户的上线时间,该数据可存放到对应于玩家上线时间分析任务的队列中;如果从游戏厂商服务器获取的数据包含“人民币字段),则可判断该数据为用户购买道具消费的金额,该数据可存放到对应于用户消费金额计算任务的队列中。
[0118]本发明的一个实施例中提供了一种数据传输装置,其包括:
[0119]第一服务器从与第一服务器位于相同地理位置的包含多个第三服务器的集群接收数据。在本实施例中,第三服务器集群的数量不做限制,第三服务器集群的数量可以任意增减,但第二服务器始终从第一服务器获取数据,所以第二服务器与第一服务器之间的数据传输配置不需改变。
[0120]数据接收模块710,在第一服务器所处的地理位置,接收来自第一服务器的待发送至第二服务器的数据,第二服务器和第一服务器位于不同地理位置。
[0121]队列存放模块720,将数据存放到预设的队列中。
[0122]数据发送模块730,从队列中获取数据,并将数据发送到第二服务器。在本实施例中,根据前述内容可知,第一服务器和第二服务器可以位于不同的机房,导致需要通过公网来进行二者之间的数据传输。
[0123]判断模块740,判断数据是否成功发送到第二服务器。
[0124]在数据发送失败时,数据发送模块730重新从队列中获取数据并进行发送。
[0125]数据删除模块750,在数据发送成功时,从队列中删除数据。
[0126]根据图7,游戏厂商配置了多个服务器来运行游戏程序(第三服务器),其所有的运行游戏程序的服务器都连接到同一服务器(第一服务器)上并传输数据,同时该服务器的数据按预设的配置信息传输到进行数据分析的服务器(第二服务器)上。无论第三服务器数量增减,由于第二服务器只与第一服务器进行连接,所以不需要改变配置信息,这有利于随时调整服务器的数量。
[0127]本发明的一个实施例中提供了一种数据传输装置,其包括:
[0128]数据接收模块710,实时接收第一服务器发送的数据,并记录在预设的日志文件中。
[0129]队列存放模块720,从日志文件中提取数据,并存放到预设队列中。
[0130]数据发送模块730,从队列中获取数据,并将数据发送到第二服务器。在本实施例中,根据前述内容可知,第一服务器和第二服务器可以位于不同的机房,导致需要通过公网来进行二者之间的数据传输。
[0131]判断模块740,判断数据是否成功发送到第二服务器。
[0132]在数据发送失败时,数据发送模块730重新从队列中获取数据并进行发送。
[0133]数据删除模块750在数据发送成功时,从队列中删除数据。根据本实施例的技术方案,通过记录日志文件的方式有利于实时接收并保存数据,以及延时从日志文件中提取数据并存放到队列中,既保证数据可以及时接收,又不会影响数据的发送。
[0134]如图9所示,本发明的一个实施例中提供了一种服务器,其包括:图6至图8对应的任一实施例中的数据传输装置。
[0135]基于前述的实施例可知,本实施例的服务器在第一服务器所处的地理位置接收第一服务器的数据,由于地理位置相同所以数据传输可以不经过公网网络,所以可以保证接收的数据完全准确;将数据向第二服务器发送时,由于数据通过队列进行了缓存,所以即使数据没有成功发送到第二服务器,也可以从队列中获取数据重新进行发送,直至发送成功为止,可知本发明的技术方案可以有效地防止出现数据丢失的情况。
[0136]在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0137]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0138]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。
[0139]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0140]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0141]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(039)来实现根据本发明实施例的数据传输装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0142]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0143]八1、一种数据传输方法,其包括:
[0144]在第一服务器所处的地理位置,接收来自所述第一服务器的待发送至第二服务器的数据,所述第二服务器和所述第一服务器位于不同地理位置;
[0145]将所述数据存放到预设的队列中;
[0146]从所述队列中获取所述数据,并将所述数据发送到所述第二服务器;
[0147]判断所述数据是否成功发送到所述第二服务器;
[0148]在所述数据发送失败时,重新从所述队列中获取所述数据并进行发送。
[0149]42、根据八1所述的方法,其中,还包括:
[0150]在所述数据发送成功时,从所述队列中删除所述数据。
[0151]八3、根据八1所述的方法,其中,判断所述数据是否成功发送到所述第二服务器,具体包括:
[0152]接收所述第二服务器发送的用于通知所述数据发送成功的消息;
[0153]如果自发送所述数据后的预设时间段内没有接收到所述消息,判断所述数据发送失败;
[0154]如果自发送所述数据后的所述预设时间段内接收到所述消息,判断所述数据发送成功。
[0155]44、根据八1所述的方法,其中,所述队列的数量为多个,多个所述队列用于存放待发送至所述第二服务器上进行多种计算任务的数据;
[0156]将所述数据存放到预设的队列中,具体包括:
[0157]根据待使用所述数据的计算任务,从多个所述队列中选择存放所述数据的队列。
[0158]八5、根据八4所述的方法,其中,在根据待使用所述数据的计算任务,从多个所述队列中选择存放所述数据的队列之前,还包括:
[0159]根据所述数据的属性,识别待使用所述数据的计算任务。
[0160]八6、根据八5所述的方法,其中,所述数据的属性包括所述数据的类型、字段、数据量的一种或多种。
[0161]八7、根据八1所述的方法,其中,在接收来自所述第一服务器的待发送至第二服务器的数据,所述第二服务器和所述第一服务器位于不同地理位置之前,还包括:
[0162]所述第一服务器从与所述第一服务器位于相同地理位置的包含多个第三服务器的集群接收所述数据。
[0163]八8、根据八1至八7中任一项所述的方法,其中,接收所述第一服务器发送的数据,具体包括:
[0164]实时接收所述第一服务器发送的数据,并记录在预设的日志文件中;
[0165]将所述数据存放到预设的队列中,具体包括:
[0166]从所述日志文件中提取所述数据,并存放到预设队列中。
[0167]八9、一种数据传输装置,其包括:
[0168]数据接收模块,用于在第一服务器所处的地理位置,接收来自所述第一服务器的待发送至第二服务器的数据,所述第二服务器和所述第一服务器位于不同地理位置;
[0169]队列存放模块,用于将所述数据存放到预设的队列中;
[0170]数据发送模块,用于从所述队列中获取所述数据,并将所述数据发送到所述第二服务器;
[0171]判断模块,用于判断所述数据是否成功发送到所述第二服务器;
[0172]在所述数据发送失败时,所述数据发送模块重新从所述队列中获取所述数据并进行发送。
[0173]八10、根据八9所述的装置,其中,还包括:
[0174]数据删除模块,用于在所述数据发送成功时,从所述队列中删除所述数据。
[0175]八11、根据八9所述的装置,其中,
[0176]所述判断模块接收所述第二服务器发送的用于通知所述数据发送成功的消息;
[0177]如果自发送所述数据后的预设时间段内没有接收到所述消息,所述判断模块判断所述数据发送失败;
[0178]如果自发送所述数据后的所述预设时间段内接收到所述消息,所述判断模块判断所述数据发送成功。
[0179]八12、根据八9所述的装置,其中,所述队列的数量为多个,多个所述队列用于存放待发送至所述第二服务器上进行多种计算任务的数据;
[0180]所述队列存放模块根据待使用所述数据的计算任务,从多个所述队列中选择存放所述数据的队列。
[0181]八13、根据412所述的装置,其中,还包括:
[0182]计算任务识别模块,用于根据所述数据的属性,识别待使用所述数据的计算任务。
[0183]八14、根据八13所述的装置,其中,所述数据的属性包括所述数据的类型、字段、数据量的一种或多种。
[0184]八15、根据八9所述的装置,其中,所述第一服务器从与所述第一服务器位于相同地理位置的包含多个第三服务器的集群接收所述数据。
[0185]八16、根据八9至八15中任一项所述的装置,其中,还包括:
[0186]日志文件记录模块,用于实时接收所述第一服务器发送的数据,并记录在预设的日志文件中;
[0187]所述队列存放模块从所述日志文件中提取所述数据,并存放到预设队列中。
[0188]六17、一种服务器,其包括:
[0189]八9至八16中任一项所述的数据传输装置。
【权利要求】
1.一种数据传输方法,其包括: 在第一服务器所处的地理位置,接收来自所述第一服务器的待发送至第二服务器的数据,所述第二服务器和所述第一服务器位于不同地理位置; 将所述数据存放到预设的队列中; 从所述队列中获取所述数据,并将所述数据发送到所述第二服务器; 判断所述数据是否成功发送到所述第二服务器; 在所述数据发送失败时,重新从所述队列中获取所述数据并进行发送。
2.根据权利要求1所述的方法,其中,还包括: 在所述数据发送成功时,从所述队列中删除所述数据。
3.根据权利要求1所述的方法,其中,判断所述数据是否成功发送到所述第二服务器,具体包括: 接收所述第二服务器发送的用于通知所述数据发送成功的消息; 如果自发送所述数据后的预设时间段内没有接收到所述消息,判断所述数据发送失败; 如果自发送所述数据后的所述预设时间段内接收到所述消息,判断所述数据发送成功。
4.根据权利要求1所述的方法,其中,所述队列的数量为多个,多个所述队列用于存放待发送至所述第二服务器上进行多种计算任务的数据; 将所述数据存放到预设的队列中,具体包括: 根据待使用所述数据的计算任务,从多个所述队列中选择存放所述数据的队列。
5.根据权利要求4所述的方法,其中,在根据待使用所述数据的计算任务,从多个所述队列中选择存放所述数据的队列之前,还包括: 根据所述数据的属性,识别待使用所述数据的计算任务。
6.一种数据传输装置,其包括: 数据接收模块,用于在第一服务器所处的地理位置,接收来自所述第一服务器的待发送至第二服务器的数据,所述第二服务器和所述第一服务器位于不同地理位置; 队列存放模块,用于将所述数据存放到预设的队列中; 数据发送模块,用于从所述队列中获取所述数据,并将所述数据发送到所述第二服务器; 判断模块,用于判断所述数据是否成功发送到所述第二服务器; 在所述数据发送失败时,所述数据发送模块重新从所述队列中获取所述数据并进行发送。
7.根据权利要求6所述的装置,其中,还包括: 数据删除模块,用于在所述数据发送成功时,从所述队列中删除所述数据。
8.根据权利要求6所述的装置,其中, 所述判断模块接收所述第二服务器发送的用于通知所述数据发送成功的消息; 如果自发送所述数据后的预设时间段内没有接收到所述消息,所述判断模块判断所述数据发送失败; 如果自发送所述数据后的所述预设时间段内接收到所述消息,所述判断模块判断所述数据发送成功。
9.根据权利要求6所述的装置,其中,所述队列的数量为多个,多个所述队列用于存放待发送至所述第二服务器上进行多种计算任务的数据; 所述队列存放模块根据待使用所述数据的计算任务,从多个所述队列中选择存放所述数据的队列。
10.一种服务器,其包括: 权利要求6至9中任一项所述的数据传输装置。
【文档编号】H04L12/861GK104468399SQ201410746563
【公开日】2015年3月25日 申请日期:2014年12月8日 优先权日:2014年12月8日
【发明者】杨涛, 侯金轩 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1